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对象等可哈希对象或称不可变对象,浅复制不会带来任何副作用。但是如果原列表中包含列表、字典、集合这样的不可哈希对象或称可变对象,那么浅复制得到的列表和原列表之间可能会相互影响。)

相关推荐
Swift社区2 小时前
在 Swift 中实现字符串分割问题:以字典中的单词构造句子
开发语言·ios·swift
没头脑的ht2 小时前
Swift内存访问冲突
开发语言·ios·swift
没头脑的ht2 小时前
Swift闭包的本质
开发语言·ios·swift
wjs20242 小时前
Swift 数组
开发语言
stm 学习ing3 小时前
FPGA 第十讲 避免latch的产生
c语言·开发语言·单片机·嵌入式硬件·fpga开发·fpga
湫ccc4 小时前
《Python基础》之字符串格式化输出
开发语言·python
mqiqe5 小时前
Python MySQL通过Binlog 获取变更记录 恢复数据
开发语言·python·mysql
AttackingLin5 小时前
2024强网杯--babyheap house of apple2解法
linux·开发语言·python