Python中的列表、元组和字典
Python中的列表、元组和字典
列表List
创建
访问
通过索引进行访问
- list = [1,2,3,4]
a=list[0] # 1
b=list[-1] # 4
- list = [1,2,3,4]
切片
- [start : end :step] 以step为间隔截取start到end(不包含)之间的所有元素;支持负数索引;
list[num:]表示从指定num开始到最后;
list[:num]表示从开头到指定的num为止
- [start : end :step] 以step为间隔截取start到end(不包含)之间的所有元素;支持负数索引;
相加(合并)
- 列表只能和列表相加
乘法
可列表包含的元素重复N次
可用于填充列表
- list = [0] * 20
判断是否包含某个元素
- in ; not in
内置全局函数
长度len()
- len(list)
最大值max()
- max(list)
最小值min()
- min(list)
序列封包和序列解包
序列封包
- 将多个值付给一个变量时,自动将多个值封装成一个元组。val = 1,2,3 # val自动封装为一个元组
序列解包
将序列(元组和列表)直接赋给多个变量,序列元素自动依次赋值给每个变量
赋给相同个数的变量
可用于交换变量的值
- x,y = y,x
赋给不同个数的变量
只解出部分变量,剩下的用带 * 号的变量(此时它是一个列表)进行保存,它可以放在任意位置
- *begin , last = range(10)
改变元素的操作
增加列表元素
末尾追加
append()单值追加
- 如果追加的是元组、列表等,会将其整体作为单个元素追加,形成嵌套列表
extend()展开追加
- 展开追加列表中的元素,一次追加到列表末尾
任意位置插入
insert(index,item)
- 第一个参数是插入的位置
- 列表、元组等作为单个元素插入
删除列表元素
del语句
按索引删除
- list = [0,1,2,3,4]
del list[0] # 删除索引为0 的元素
- list = [0,1,2,3,4]
按切片删除,支持负数索引
- list = [0,1,2,3,4]
del list[0:2] # 删除从0到2(不包含2)的元素
- list = [0,1,2,3,4]
指定步长的切片删除,支持负数索引
- list = [0,1,2,3,4]
del list[02] # 以间隔为2的方式删除从0到3(不包含3)的元素
- list = [0,1,2,3,4]
- del可以删除普通变量
remove()删除元素本身
- 根据元素本身的值删除元素,而非根据索引
只删除找到的第一个元素
- list = [0,1,2,0,4]
lsit.remove(0) # 只删除第一个0,列表变为[1,2,0,4]
- list = [0,1,2,0,4]
- 如果没有找到要删除的元素会引发ValueError错误
clear()清空列表所有元素
执行清空操作列表将变为空列表
- list = [0,1,2,0,4]
list.clear() # []
- list = [0,1,2,0,4]
修改列表元素
修改单个元素
正数索引
- list = [0,1,2,3]
list[0] = 100
- list = [0,1,2,3]
负数索引
- list = [0,1,2,3]
list[-1] = 100
- list = [0,1,2,3]
使用切片修改多个元素(不能使用单个值)
- 不要求新赋值的元素个数与原来的元素个数相等
批量插入
对列表中空的slice赋值,就成为了列表插入元素
- list = [1,2,3]
list[2:5] = [1,2,3,4,5,6] # [1, 2, 1, 2, 3, 4, 5, 6]
- list = [1,2,3]
批量删除
将列表其中一段赋值为空列表,就成为从列表中批量删除元素
- list = [1,2,3,4,5]
list[3:] = [] # [1, 2, 3]
- list = [1,2,3,4,5]
使用切片对字符串进行赋值
自动将字符串当做序列处理,每个字符都是一个元素
- list = [1,2,3]
list[2:3] = ‘list’ # [1, 2, ‘l’, ‘i’, ‘s’, ‘t’]
- list = [1,2,3]
指定step
要求赋值列表元素个数与所替换列表元素个数相等
- list = list(range(1,10))
list[22] = [‘a’,‘b’,‘c’,‘d’] # [1,2,‘a’,4,‘b’,6,‘c’,8,‘d’]
- list = list(range(1,10))
其他方法
pop()
- 将列表当做“栈”使用,实现元素出栈功能
reverse()
- 将列表元素反转
sort()
对列表元素进行排序
- 默认排序
自定义排序
指定关键字参数
key
- 比较大小的依据
reverse
- 指定排序方式,默认从小到大,设为True则改为从大到小
示例
- list = [‘python’,‘java’,‘php’,‘javascript’]
list.sort(key=len,reverse=True) # [‘javascript’, ‘python’, ‘java’, ‘php’]
- list = [‘python’,‘java’,‘php’,‘javascript’]
其他方法
count()
统计列表中某个元素出现的次数
- list = [1,2,3,3,3,4]
list.count(3) # 3
- list = [1,2,3,3,3,4]
index()
判断某个元素在列表中出现的位置
只返回第一个匹配到的位置- list.index(3) # 2
指定区间进行查找
- list = [1,2,3,3,3,4]
list.index(3,3,5) # 3
- list = [1,2,3,3,3,4]
遍历
while
- while i < len(list):
for-in
for ele in list:
- 遍历值
for i in range(0,len(list)):
- 遍历索引
元组tuple
字典dict
创建字典
{key:value}
- person = {‘name’:‘flten’,‘age’:24}
传入多个列表或元组参数作为key-value对
- personList = [(‘flten01’,22),(‘flten02’,23),(‘flten03’,24)]
dictPerson = dict(personList)
- personList = [(‘flten01’,22),(‘flten02’,23),(‘flten03’,24)]
通过为dict指定关键字参数创建字典
- dictP = dict(flten=24,echo=23) # {‘flten’:24,‘echo’:23}
根据给定的多个key创建字典
- 只能传入list或tuple
key对应的默认值是 None
- a_dict = dict.fromkeys([‘a’,‘b’]) # {‘a’:None,‘b’:None}
可以传入一个默认的value
- a_dict = dict.fromkeys([‘a’,‘b’],6) # {‘a’:6,‘b’:6}
字典操作
增
添加单个key-value对
- 为不存在的key直接赋值
person[‘wall’] = 22
- 为不存在的key直接赋值
删
del
- 使用del语句根据key删除字典中的key-value对
pop()
- 获取指定key对应的value,并删除这个key-value对
clear()
- 清空字典
改
- 对字典中存在的key-value直接赋值进行覆盖
update()
- 如果字典中存在对应的key-value对,则覆盖
- 如果字典中不存在则添加key-value
查
通过dict[key]直接访问
- 不存在时会报错
get()
不存在时返回None
- 可用于判断字典中是否存在key-value对
setdefault()
- 设置一个默认value,不存在时将key对应的value设为这个值并且返回这个value
- 总能返回指定key对应的value
批量
items()
获取字典中所有的 key-value 对
- 转成列表后返回的元素是元组
keys()
- 获取字典中所有的key
values()
- 获取字典中所有的value
遍历
遍历key-value对
- for key,val in my_dict.items():
遍历所有key
- for key in my_dict.keys()
遍历所有value
- for val in my_dict.values()
还没有评论,来说两句吧...