参考Python中列表和字典有什么区别?作的学习记录。
目录
列表
列表具有“异构性”,可以包含不同类型的对象
l = [1, [2.3, 4],'temp']
列表是“有序的”,切片,左闭右开
l = [1,2,3,4,5,6,7]
l[1:4] = [2,3,4]
//1:4表示序号1到序号4,序号为1的为2,序号为4的为5,根据左闭右开,所以为[2,3,4]
l[1:] = [2,3,4,5,6,7]
l[:6] = [1,2,3,4,5,6]
l[:7] 报错SyntaxError: invalid character in identifier,超出最大序号了
l[:] = list
负索引
l = [1,2,3,4,5,6,7]
l[2:-1] = [3,4,5,6]//2代表起始序号(正序),-1代表末序号(逆序) ,即序号为6也是-1,序号为5也是-2
步进切片
l = [1,2,3,4,5,6,7]
l[0::2] = [1,3,5,7]//0代表起始序号,2代表步进
l[1::3] = [2,5]
列表插入,修改,删除不需要重新建表
***********插入
l = [1,2,3,4,5,6,7]
l.append(8)//在尾部插入
print(l) //[1,2,3,4,5,6,7,8]
l.insert(1,1.5)//1代表插入位置,插入1.5
print(l)//[1,1.5,2,3,4,5,6,7,8]
l.insert(10,11)//插入位置大于列表长度,则在末尾插入
print(l)//[1,1.5,2,3,4,5,6,7,8,11]
l.extend([12,13,14])//同时在尾部插入多个元素
print(l)//[1,1.5,2,3,4,5,6,7,8,11,12,13,14]
***********修改
l = [1,2,3,4,5]
l[0] = "?"
print(l)//['?',2,3,4,5]
l[0:2] = ['a,'b']
print(l)//['a','b',3,4,5]
***********删除
l = [1,2,3,1]
l.remove(1)
print(l)//[2,3,1],默认删除第一个1
l = [1,2,3,1]
del l[3:]//del是python的一个内置函数,可依切片删除,也可以删除多个元素
print(l)//[1,2,3]
l.pop()//返回最后一个元素的值3,有点像栈顶出栈
print(l)//[1,2]
排序
l = [2,1,3,4,5,6,7,8,11,12,13,14]
l.sort()
print(l)//[1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14]
l.reverse()
print(l)//[14, 13, 12, 11, 8, 7, 6, 5, 4, 3, 2, 1]
字典
字典和列表完全不同,它包含的是一对对键值,每个键都是唯一的。通过键来而非列表那样通过位置索引。异构无序。
Dic = {
'color':'red',
'num':1,
'list':[1,3,4],
'gender':{
'男':1,'女':2}
}
读取
print(Dic['color'])//red
插入
Dic['alibaba'] = 1
Dic['num'] = 2
print(Dic)
//{'color':'red',
//'num':2,
//'list':[1,3,4],
// 'gender':{'男':1,'女':2},
//'alibaba':1
// }
用列表生成字典
a = ['one','two','three']
b = [1,2,3]
Dic = dict(zip(a,b))
print(Dic)//{'one': 1, 'two': 2, 'three': 3}
用键值对元组组成字典
Dic = dict([('a',1),('b',2)])
print(Dic)//{'a':1, 'b': 2}
获取键值
Dic = {
'a':1,'b':2}
print(list(Dic.keys()))//['a', 'b']
print(list(Dic.values()))//[1,2]
print(list(Dic.items()))//[('a', 1), ('b', 2)]
//list是列表方法,注意不要定义list = []形式的列表,否则会报错TypeError: 'list' object is not callable
删除键
Dic = {
'a':1,'b':2}
del D['a']
print(Dic)//{'b': 2}
Dic = {
'a':1,'b':2}
print(Dic.pop('a'))//1
print(Dic)//{'b':2}
排序
字典的排序实际是上对键的排序
Dic = {
'color':'red',
'num':1,
'list':[1,3,4],
'gender':{
'男':1,'女':2}
}
sorted(Dic)//'color', 'gender', 'list', 'num']