python列表、元组、集合、字典整理

特征对比

下面是Python中列表、元组、集合和字典的特征对比表格:

特征列表 (List)元组 (Tuple)集合 (Set)字典 (Dictionary)
定义符号[ ]( ){ }{ }
可变性可变不可变可变可变
有序性有序有序无序无序
元素访问通过索引访问,索引从0开始通过索引访问,索引从0开始不支持索引访问通过键访问
元素类型可以包含任意类型的元素可以包含任意类型的元素可以包含任意类型的元素键必须是不可变类型,值可以是任意类型
声明示例my_list = [1, 'apple', True]my_tuple = (1, 'apple', True)my_set = {1, 'apple', True}my_dict = {'name': 'Alice', 'age': 30}
可变操作添加、删除、修改元素不支持添加、删除、修改元素添加、删除元素添加、删除、修改键值对

说明:

  • 可变性:列表、集合和字典是可变的,可以通过增删改操作来修改其内容;元组是不可变的,一旦创建后不能被修改。
  • 有序性:列表和元组是有序的,元素按照插入顺序排列;集合和字典是无序的,元素没有固定顺序。
  • 元素访问:列表和元组可以通过索引访问元素;集合不支持索引访问,只能通过迭代或特定方法访问元素;字典通过键来访问对应的值。
  • 元素类型:列表、元组、集合和字典都可以包含任意类型的元素;字典中的键必须是不可变类型,而值可以是任意类型。
  • 声明示例:各种数据结构的声明方式和示例。
  • 可变操作:列表可以进行添加、删除、修改等操作;元组不能进行任何修改操作;集合可以进行添加和删除元素的操作;字典可以进行添加、删除和修改。

常用方法

列表 (List)

方法描述参数说明使用示例
append(x)在列表末尾添加元素 xx:要添加的元素my_list.append(10)
extend(iterable)将可迭代对象 iterable 的元素添加到列表末尾。iterable:一个可迭代对象,如列表、元组等my_list.extend([20, 30])
insert(i, x)在索引 i 处插入元素 xi:要插入的索引位置; x:要插入的元素my_list.insert(1, 'apple')
remove(x)移除列表中第一个值为 x 的元素。x:要移除的元素my_list.remove('apple')
pop([i])移除并返回索引为 i 处的元素。如果未指定索引,默认移除并返回最后一个元素。i:可选的索引位置my_list.pop()my_list.pop(0)
clear()移除列表中的所有元素。无参数my_list.clear()
index(x)返回第一个值为 x 的元素的索引。x:要查找的元素my_list.index('apple')
count(x)返回值为 x 的元素在列表中出现的次数。x:要计数的元素my_list.count('apple')
sort(key=None, reverse=False)对列表进行排序。key:排序的规则函数; reverse:是否逆序排序my_list.sort(reverse=True)
reverse()反转列表中的元素。无参数my_list.reverse()
copy()返回列表的浅拷贝。无参数new_list = my_list.copy()

元组 (Tuple)

元组是不可变的,因此没有修改元素的方法。

方法描述参数说明使用示例
count(x)返回值为 x 的元素在元组中出现的次数。x:要计数的元素my_tuple.count('apple')
index(x)返回第一个值为 x 的元素的索引。x:要查找的元素my_tuple.index('apple')

集合 (Set)

方法描述参数说明使用示例
add(x)向集合中添加元素 xx:要添加的元素my_set.add(10)
update(iterable)将可迭代对象 iterable 的元素添加到集合中。iterable:一个可迭代对象,如列表、元组等my_set.update([20, 30])
remove(x)移除集合中的元素 x,如果不存在会抛出 KeyError。x:要移除的元素my_set.remove('apple')
discard(x)移除集合中的元素 x,如果不存在不会抛出异常。x:要移除的元素my_set.discard('apple')
pop()随机移除并返回集合中的一个元素。无参数my_set.pop()
clear()移除集合中的所有元素。无参数my_set.clear()
union(*others)返回一个新集合,包含所有集合和可迭代对象 others 中的元素。others:一个或多个集合或可迭代对象new_set = my_set.union(other_set)
intersection(*others)返回一个新集合,包含所有集合和可迭代对象 others 中共同的元素。others:一个或多个集合或可迭代对象new_set = my_set.intersection(other_set)
difference(*others)返回一个新集合,包含所有在当前集合中但不在可迭代对象 others 中的元素。others:一个或多个集合或可迭代对象new_set = my_set.difference(other_set)
symmetric_difference(other)返回一个新集合,包含所有在当前集合或 other 中,但不同时在两者中的元素。other:另一个集合或可迭代对象new_set = my_set.symmetric_difference(other_set)

字典 (Dictionary)

方法描述参数说明使用示例
clear()移除字典中的所有元素。无参数my_dict.clear()
copy()返回字典的浅拷贝。无参数new_dict = my_dict.copy()
fromkeys(keys, value=None)创建一个新字典,使用 keys 中的元素作为键,value 作为值(默认为 None)。keys:作为键的可迭代对象; value:作为值的默认值new_dict = dict.fromkeys(['name', 'age'], 'unknown')
get(key, default=None)返回键 key 对应的值,如果键不存在则返回 defaultkey:要获取值的键; default:键不存在时返回的默认值value = my_dict.get('name', 'Unknown')
items()返回字典的键值对视图。无参数items_view = my_dict.items()
keys()返回字典的键视图。无参数keys_view = my_dict.keys()
values()返回字典的值视图。无参数values_view = my_dict.values()
pop(key, default=None)移除并返回键为 key 的元素,如果键不存在则返回 defaultkey:要移除的键; default:键不存在时返回的默认值value = my_dict.pop('name', 'Unknown')
popitem()移除并返回任意一个键值对元组。无参数key_value_pair = my_dict.popitem()
setdefault(key, default=None)返回键 key 对应的值,如果键不存在则将 default 设为该键的值并返回。key:要获取值的键; default:键不存在时设置的默认值value = my_dict.setdefault('name', 'Unknown')
update([other])更新字典,将另一个字典或可迭代对象 other 的键值对添加到当前字典中。other:一个字典或可迭代对象my_dict.update({'name': 'Alice', 'age': 30})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/37662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个启动脚本例子

一、全部代码 #!/bin/bash DATE$(date %Y%m%d)SOURCE"abc.jar" TARGET"backup/abc.jar.jew.$DATE"if [ -f "$SOURCE" ]; thencp "$SOURCE" "$TARGET" firm -f abc.jar mv abc_1.jar abc.jarpidNumps -ef | grep $SOURCE |…

【源码+文档+调试讲解】基于vue的线上点餐系统

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了线上点餐系统的开发全过程。通过分析线上点餐系统管理的不足,创建了一个计算机管理线上点餐系统的方案。文章介绍了线上点餐系统的系统分析部分&…

电脑提示vcomp140.dll缺失怎么解决?vcomp140.dll是什么文件?

当你的电脑提示vcomp140.dll缺失的时候,你就应该要注意了,因为这个提示的出现,代表你的某个程序开不了!想要程序能正常运行,那么只要修复好这个vcomp140.dll文件就可以了,下面我们就来给大家详细的说说说vc…

超详细之IDEA上传项目到Gitee完整步骤

1. 注册gitee 账号密码,gitee官网地址:Gitee官网,注册完成后,登录。 2. 创建仓库,在主页左下角有新建按钮,点击新建后会进入到此页面填写仓库信息。 3. 创建完成后复制仓库地址 4. 打开IntelliJ IDEA新建或…

python自动化之schedule

目录 代码(以每5秒1次为例): 每5分钟1次 每2小时1次 每天18:00执行 用到的库:schedule,time 实现的效果:按秒来运行任务,按分钟来运行任务,按小时来运行任务,按天来运行任务 代…

鸿蒙3.0WebView网络错误问题

背景,荣耀9x,混淆才会出这个问题。 [ERROR:ssl_client_socket_impl.cc(981)] handshake failed; returned -1, SSL error code 1, net_error -2 NetError.java int SSLClientSocketImpl::DoHandshake() {crypto::OpenSSLErrStackTracer err_tracer(FRO…

Oracle新特性速递:未来数据库技术的无限可能

文章目录 一、自治数据库:智能化与自动化的革命二、机器学习集成:智能数据分析的新境界三、区块链技术:确保数据完整性与透明性四、云原生数据库:灵活扩展与快速部署五、人工智能优化器:智能查询执行计划《Oracle从入门…

centos7搭建zookeeper 集群 1主2从

centos7搭建zookeeper 集群 准备前提规划防火墙开始搭建集群192.168.83.144上传安装包添加环境变量修改zookeeper 的配置 192.168.83.145 和 192.168.83.146 配置 启动 集群 准备 vm 虚拟机centos7系统zookeeper 安装包FinalShell或者其他shell工具 前提 虚拟机安装好3台cen…

为什么我的Skype点数不见了?如何重新激活 Skype 点数?

您超过180天没有使用过点数打电话功能,点数暂时封存在您的账户里面,需要您手动激活(目前必须要登录网页版skype) 可再次使用。 如何重新激活 Skype 点数? 登录到你的帐户 . 选择 重新激活信用额度 .注意: …

MiniTest

1.编辑case文件first_test.py import minium class FirstTest(minium.MiniTest): def test_get_system_info(self): 2.编辑配置文件config.json { "project_path": "path/to/project", "dev_tool_path": "path/to/cli", "…

【Python】 Joblib:高效的Python作业调度和缓存工具

那年夏天我和你躲在 这一大片宁静的海 直到后来我们都还在 对这个世界充满期待 今年冬天你已经不在 我的心空出了一块 很高兴遇见你 让我终究明白 回忆比真实精彩 🎵 王心凌《那年夏天宁静的海》 在Python数据科学和机器学习中,处理…

喜讯!安全狗荣获“2023年网络安全技术支撑优秀单位”称号

6月6日,由中共厦门市委网络安全和信息化委员会办公室(以下简称“厦门市委网信办”)主办的2023年网络安全技术支撑优秀单位颁奖仪式在厦门成功举行。 作为国内云原生安全领导厂商,安全狗受邀出席此次活动。 会上,安全狗…

预约小程序源码,云开发技术,无需服务器

介绍: 很多企业的业务都需要通过服务预约来完成,比如酒店、美容、家政等等。 但很多商家因缺少合适的服务预订工具,而不知道如何让客户尽快预约。 这种情况下,制作一个自己的预约小程序,客户只需要扫码或者在微信里…

Eureka的桥梁:服务消费者交互全解析

Eureka的桥梁:服务消费者交互全解析 在微服务架构中,服务发现是确保服务间有效通信的关键机制。Eureka,作为Netflix开源的服务发现框架,扮演着服务注册中心的角色,为服务消费者和服务提供者提供了一个动态的服务注册与…

调用基类的纯虚函数,如何知道纯虚函数会调用哪个派生类(子类)中的实现。

在 C 中,调用基类的纯虚函数实际上是通过运行时多态性来决定调用哪一个派生类的实现。这种机制是通过虚函数表(vtable)和虚函数指针(vptr)实现的。下面我们来详细探讨一下这个过程。 虚函数表和虚函数指针 虚函数表&a…

开放签电子签章系统(企业版)V2.0.5版本详细更新内容

本次版本迭代间隔1月之久,新功能主要是增加文件的签署记录并生成报告,其次优化支持非A4规格的签约文件(这个费时很久,主要原因是推翻之前的位置计算的逻辑,重新计算坐标位置),详细更新内容如下&…

WebKit与CSSOM视图模块:探索现代Web布局的协同进化

WebKit与CSSOM视图模块:探索现代Web布局的协同进化 在当今快速发展的Web技术领域,WebKit作为众多流行浏览器的渲染引擎,其对CSS对象模型(CSSOM)视图模块的支持至关重要。CSSOM视图模块为开发者提供了一组丰富的API&am…

HarmonyOS--开发者证书地址

初级证书:华为开发者学堂 高级证书:华为开发者学堂

【Qt】QSettings使用

1. 介绍 QSettings类提供持久的跨平台的应用程序设置存储。 2. 使用 /*********************************************************/ /* main.cpp */ int main(int argc, char *argv[]) {QApplication a(argc, argv);//Settings设置a.setOrganizationName("custom"…

【笔记】通过shell脚本自动部署项目(未完成)

然后将gitee仓库上的代码克隆至linux上 如果不知道gitee仓库怎么上传代码移步【笔记】如何在gitee仓库上传idea代码-CSDN博客 写到一半不想写了自己去复习p138-139吧