python中的列表、元组、字典、集合(列表篇)

|------|-------------|------|------|------|------|
| 数据类型 | 定义符号 | 访问元素 | 是否可变 | 是否重复 | 是否有序 |
| 列表 | | 索引 | 可变 | 可重复 | 有序 |
| 元组 | () | 索引 | 不可变 | 可重复 | 有序 |
| 字典 | {key:value} | 键 | 可变 | 可重复 | 无序 |
| 集合 | { } | | 可变 | 不可重复 | 无序 |

列表

列表是包含若干元素的有序连续内存空间。在python中,同一个列表中的元素的数据类型可以各不相同。

列表创建与删除

1.使用方括号直接创建列表

values= 1,2,3 # 1,2,3

2.使用list()创建列表

values=list(range(5)) # 0,1,2,3,4

3.把元组转换为列表

values=list((1,2,3)) # 1,2,3

values=list'python' # 'p','y','t','h','o','n'

4.把迭代器对象转换成列表

values=list(map(str,range(5))) #'0', '1', '2', '3', '4'

复制代码
values1=random.choices(range(10),k=5)  # [9, 1, 9, 8, 5]  (choices允许重复)
复制代码
values2=random.sample(range(10),k=5)   # [9, 1, 6, 7, 4] (sample不允许重复)

列表元素访问

列表、元组和字符串属于有序序列,其中的元素有严格的先后顺序,可以使用整数作为下标来随机访问其中任意位置上的元素,也支持使用切片来访问其中的多个元素。

列表、元组和字符串都支持双向索引,有效范围为-L,L-1,其中L表示长度。正向索引时0表示第一个元素;反向索引时-1表示最后一个元素,-2表示倒数第2个元素。

列表常用方法

append()、insert()、extend() 增

append()用于向列表尾部追加一个元素,insert()用于向列表任意指定位置前面插入一个元素,extend()用于将可迭代对象中的所有元素追加至当前列表的尾部,这三个方法都没有返回值。

pop()、remove()、clear() 删

pop()用于删除并返回指定位置上的元素,不指定位置时默认删除并返回列表中最后一个元素,如果列表为空或者指定的位置不存在会抛出异常;remove()用于删除列表中第一个值与指定值相等的元素,如果不存在则抛出异常;clear()用于清空列表中所有元素。三者中只有pop()方法有返回值。

sort()、reverse() 排序

sort()用于按照指定的规则对列表中所有元素进行排序,其中key参数用来指定排序规则,可以是函数、党法、lambda表达式、类等可调用对象,不指定排序规则时默认按照元素的大小直接进行排序;reverse参数用来指定升序排序还是降序排序,默认升序排序,如果需要降序排序可以指定参数reverse=True。两种方法均无返回值。

copy()复制

copy()返回列表对象的浅复制(指只对列表中第一级元素的引用进行复制,在浅复制完成的瞬间,新列表和原列表包含同样的引用。如果原列表中只包含整数、实数、复数、元组、字符串、range对象以及map对象、zip对象等可哈希对象或称不可变对象,浅复制不会带来任何副作用。但是如果原列表中包含列表、字典、集合这样的不可哈希对象或称可变对象,那么浅复制得到的列表和原列表之间可能会相互影响。)

相关推荐
dialect_5 小时前
KMP算法
开发语言·c++·算法
总要学点什么6 小时前
第89篇:三维特效-螺旋圆效果——让螺旋臂卷起一圈圈外扩的涟漪
开发语言·javascript·ecmascript·webgl·cesium·空间分析·1024程序员节
前端精髓6 小时前
结构化输出with_structured_output(抽卡)
python·langchain
尹人入圣7 小时前
目前热门的IP驱动产业新场景新工具
网络·python·网络协议·tcp/ip
开开心心_Every7 小时前
快速隐藏程序工具自定义快捷键一键切换
java·开发语言·前端·spring·智能手机·word·intellij-idea
chenbingjie_c7 小时前
C++ 多态完全指南:从虚函数重写到虚函数表原理
开发语言·c++
Nuanyt8 小时前
Agent 学习笔记(下篇三):上线工程、进阶选择与操作界面(Stage 7 / 7.5 / 8 + 延伸路线)
笔记·python·学习·memory·aiagent·harness
吴卫斌8 小时前
定投ETF实战指南(四):行业/主题ETF——定投的“进攻端“
开发语言·python·股票·量化
2601_967987378 小时前
Python——入门级(定义功能def函数)
python·函数·可变参数·默认参数·关键字参数
超级架构师9 小时前
PRAXO-CORE 2.5.0:用 conformance 和显式边界构建 Go Agent 框架
开发语言·人工智能·后端·golang·ai编程·智能体框架·praxo-core