列表使用方括号括起来的[ ],每个元素以逗号分隔
可以储存不同的数据类型数据
创建空列表
li=[]创建多元素列表
li=[1,2,3,'a','gollege',['p','y','t']]增:
append() 把列表为一个单位添加extend() 把列表中的元素取出一个个添加insert() 指定位置添加(添加的为一个单位) li1=["one","two",'a','b'] li2=['lucky','boy'] li1.append(li2) print(li1) #['one', 'two', 'a', 'b', ['lucky', 'boy']] li1.extend(li2) #['one', 'two', 'a', 'b', 'lucky', 'boy'] li1.insert(1,li2) #['one', ['lucky', 'boy'], 'two', 'a', 'b'] li1.extend(li2) li1[2:5]=["aa",'bb','cc'] #['one', 'two', 'aa', 'bb', 'cc', 'boy']删:
pop()
如果不指定索引,默认删除最后一个可删除指定索引对应的元素 li1=["one","two",'a','b'] li1.pop() li1.pop(1) print(li1) #['one', 'a']remove()
删除第一个遇到的指定元素
无指定元素会报错
li1=["one","two",'a','b','a'] li1.remove('a') print(li1) #['one', 'two', 'b', 'a']del
删除指定位置元素 li1=["one","two",'a','b','a'] del li1[2] print(li1) #['one', 'two', 'b', 'a']clear()
清空 li1=["one","two",'a','b','a'] li1.clear() print(li1) #[]查
索引切片赋值与深浅拷贝
赋值是对对象的引用 la = [1,2,5,6,'a',['f','g','n','b']] lb = la print(lb) print(la is lb) print(id(la),id(lb)) la.append('fgsb') print(la) print(lb) #[1, 2, 5, 6, 'a', ['f', 'g', 'n', 'b']] #True #54365640 54365640 #[1, 2, 5, 6, 'a', ['f', 'g', 'n', 'b'], 'fgsb'] #[1, 2, 5, 6, 'a', ['f', 'g', 'n', 'b'], 'fgsb']深浅拷贝
浅拷贝会创建新的对象,内容是原对象的引用,对于元素地址的拷贝只有第一层,当列表中的元素也存在列表时,即该列表的元素的地址就不知有一层了,当你修改第一层中的元素时,拷贝列表会跟随变化;当你修改到第二层中元素时,由于拷贝列表只拷贝了第一层,第二层元素改变时,拷贝列表不会改变切片操作[:]
工厂函数list(li)
copy函数
la = [1,2,5,6,'a',['f','g','n','b']] lb = la.copy() print(lb) print(la is lb) print(id(la),id(lb)) la.append('fgsb') print(la) print(lb) #[1, 2, 5, 6, 'a', ['f', 'g', 'n', 'b']] #False #54300224 54858136 #[1, 2, 5, 6, 'a', ['f', 'g', 'n', 'b'], 'fgsb'] #[1, 2, 5, 6, 'a', ['f', 'g', 'n', 'b']] 强拷贝 import copy la = [1,2,5,6,'a',['f','g','n','b']] lb = la lc = copy.deepcopy(la) print(lb) print(lc) print(la is lb) print(la is lc) print(id(la),id(lb),id(lc)) la[5][2]='s' print(la) print(lb) print(lc) #[1, 2, 5, 6, 'a', ['f', 'g', 'n', 'b']] #[1, 2, 5, 6, 'a', ['f', 'g', 'n', 'b']] #True #False #52106744 52106744 52105944 #[1, 2, 5, 6, 'a', ['f', 'g', 's', 'b']] #[1, 2, 5, 6, 'a', ['f', 'g', 's', 'b']] #[1, 2, 5, 6, 'a', ['f', 'g', 'n', 'b']]列表解析式
print([x for x in range(10)]) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print([x for x in range(10)if x%2 == 0]) #[0, 2, 4, 6, 8]格式:[表达式 for 迭代元素 in 可迭代对象]
最后计算的表达式以一个列表返回
三目运算符
y = 10 x = y + 1 if y>10 else y-1 print(x) x = y + 1 if y>9 else y-1 print(x) #9 #11不能删除某个元素,但可以删除整个元组,用del函数
max()、min()函数可获得元组中最大和最小的元素
大致与列表操作相同,差别不大,可向上参考
tp1 = ("def",) tp2 = ("abc","zucc") tp = tp1 + tp2 for i in tp1: print(i)