python 列表操作
1,列表操作代码示例
1 #列表的申明和要素的添加: 2 3 names=["zhangyang","guyan","xihuan","fuck","oye","oye","oye"] 4 print(names) 5 6 #输出: 7 8 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye']
1 #列表要素顺序的反转: 2 3 names=["zhangyang","guyan","xihuan","fuck","oye","oye","oye"] 4 print(names) 5 6 names.reverse()#反转列表要素顺序 7 8 print(names) 9 10 #输出: 11 12 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye'] 13 ['oye', 'oye', 'oye', 'fuck', 'xihuan', 'guyan', 'zhangyang']
1 #列表要素的排序: 2 3 names1=["4a","aa","Aa","#a"] 4 print(names1) 5 names1.sort()#按ascii码排序 6 print(names1) 7 8 #输出: 9 10 ['4a', 'aa', 'Aa', '#a'] 11 ['#a', '4a', 'Aa', 'aa'] 12 13 #注意:排序按要素第一个字符的ASCII码排序
1 #列表要素的单独查询: 2 3 names=["zhangyang","guyan","xihuan","fuck","oye","oye","oye"] 4 print(names) 5 print(names[0],names[2]) 6 7 #输出: 8 9 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye'] 10 zhangyang xihuan
1 #列表要素的连续几位的查询: 2 3 names=["zhangyang","guyan","xihuan","fuck","oye","oye","oye"] 4 5 print(names) 6 7 print(names[0:2])#从第一位开始,取0,1两个字符,顾头不顾尾,也就是最后一位取不到,也叫切片 8 9 #输出: 10 11 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye'] 12 ['zhangyang', 'guyan']
1 #从第一位开始连续取到2号要素: 2 3 names=["zhangyang","guyan","xihuan","fuck","oye","oye","oye"] 4 5 print(names) 6 7 print(names[:3])#第一位开始取到2号下标要素 8 9 #输出: 10 11 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye'] 12 ['zhangyang', 'guyan', 'xihuan']
1 #取最后1位要素: 2 3 names=["zhangyang","guyan","xihuan","fuck","oye","oye","oye"] 4 5 print(names) 6 7 print(names[-1])#取最后一位 8 9 #输出: 10 11 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye'] 12 oye
1 #取倒数第四位要素: 2 3 names=["zhangyang","guyan","xihuan","fuck","oye","oye","oye"] 4 5 print(names) 6 7 print(names[-4])#取倒数第4位 8 9 #输出: 10 11 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye'] 12 fuck
1 #取最后2位要素: 2 names=["zhangyang","guyan","xihuan","fuck","oye","oye","oye"] 3 4 print(names) 5 6 print(names[-2:])#取最后2位 7 8 #输出: 9 10 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye'] 11 ['oye', 'oye']
1 #追加list的要素: 2 3 names=["zhangyang","guyan","xihuan","fuck","oye","oye","oye"] 4 5 print(names) 6 7 names.append("last") #在列表的尾部追加list要素 8 9 print(names) 10 11 print(names[-1])#取最后一位 12 13 #输出: 14 15 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye'] 16 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye', 'last'] 17 last
1 #插入要素: 2 3 names=["zhangyang","guyan","xihuan","fuck","oye","oye","oye"] 4 5 print(names) 6 7 names.insert(1,"insert")#插入一位要素 8 9 print(names) 10 11 print(names[1])#取下标为1的要素 12 13 #输出: 14 15 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye'] 16 ['zhangyang', 'insert', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye'] 17 insert
1 #修改要素: 2 3 names=["zhangyang","guyan","xihuan","fuck","oye","oye","oye"] 4 5 print(names) 6 7 names[2]="修改"#修改list的要素 8 9 print(names) 10 11 print(names[2]) 12 13 #输出: 14 15 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye'] 16 ['zhangyang', 'guyan', '修改', 'fuck', 'oye', 'oye', 'oye'] 17 修改
1 #删除列表要素:(通过要素的值删除) 2 3 names=["zhangyang","guyan","xihuan","fuck","oye","oye","oye"] 4 5 print(names) 6 7 names.remove("oye")#删除第一个匹配的要素 8 9 print(names) 10 11 #输出: 12 13 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye'] 14 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye']
1 #删除列表要素:(通过下标删除) 2 3 names=["zhangyang","guyan","xihuan","fuck","oye","oye","oye"] 4 5 print(names) 6 7 del names[0] 8 9 print(names) 10 11 #输出: 12 13 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye'] 14 ['guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye']
1 #删除列表要素:(POP方法,不指定则默认删除最后一个,指定下标则相当于del) 2 3 names=["zhangyang","guyan","xihuan","fuck","oye","oye","oye"] 4 5 print(names) 6 7 names.pop()#默认删除最后一个,如果有下标则与del相同 8 9 print(names) 10 11 #输出: 12 13 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye'] 14 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye']
1 #查找列表要素的下标: 2 3 names=["zhangyang","guyan","xihuan","fuck","oye","oye","oye"] 4 5 print(names) 6 7 print(names.index("xihuan"))#查找要素的下标 8 9 print(names[names.index("xihuan")])#通过查到的下标,打印对应的列表要素 10 11 #输出: 12 13 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye'] 14 2 15 xihuan
1 #统计list内要素值相同的个数: 2 3 names=["zhangyang","guyan","xihuan","fuck","oye","oye","oye"] 4 5 print(names) 6 7 print(names.count("oye"))#统计list内的相同要素的数量 8 9 #输出: 10 11 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye'] 12 3
1 #2个列表合并: 2 3 names=["zhangyang","guyan","xihuan","fuck","oye","oye","oye"] 4 5 print(names) 6 7 names1=["4a","aa","Aa","#a"] 8 9 print(names1) 10 11 names.extend(names1)#合并2个list 12 13 print(names,names1) 14 15 #输出: 16 17 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye'] 18 ['4a', 'aa', 'Aa', '#a'] 19 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye', '4a', 'aa', 'Aa', '#a'] ['4a', 'aa', 'Aa', '#a']
1 #复制一个列表: (浅copy) 2 3 import copy 4 5 names=["zhangyang","guyan","xihuan","fuck","oye","oye","oye"] 6 7 print(names) 8 9 names2=names.copy() 10 11 names3=names[:] 12 13 names4=list(names) 14 15 print(names,names2,names3,names4) 16 17 #输出: 18 19 ['zhangyang', 'guyan', 'xihuan', 'fuck', ['jack', 'peter', 'mike'], 'oye', 'oye', 'oye'] 20 ['zhangyang', 'guyan', 'xihuan', 'fuck', ['jack', 'peter', 'mike'], 'oye', 'oye', 'oye'] 21 ['zhangyang', 'guyan', 'xihuan', 'fuck', ['jack', 'peter', 'mike'], 'oye', 'oye', 'oye'] 22 ['zhangyang', 'guyan', 'xihuan', 'fuck', ['jack', 'peter', 'mike'], 'oye', 'oye', 'oye']
1 #清除列表的内容: 2 3 names=["zhangyang","guyan","xihuan","fuck","oye","oye","oye"] 4 5 print(names) 6 7 names.clear()#清除list内的要素 8 9 print(names) 10 11 #输出: 12 13 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye'] 14 []
1 #删除列表: 2 3 names=["zhangyang","guyan","xihuan","fuck","oye","oye","oye"] 4 5 print(names) 6 7 del names 8 9 print(names) 10 11 #输出: 12 13 ['zhangyang', 'guyan', 'xihuan', 'fuck', 'oye', 'oye', 'oye'] 14 Traceback (most recent call last): 15 File "C:/Users/Mike.zhang/PycharmProjects/MIKE/day2/list.py", line 52, in <module> 16 print(names) 17 NameError: name 'names' is not defined
1 #列表的嵌套的查询: 2 3 names=["zhangyang","guyan","xihuan","fuck",["jack","peter","mike"],"oye","oye","oye"] 4 5 print(names) 6 7 print(names[4][2]) 8 9 #输出: 10 11 ['zhangyang', 'guyan', 'xihuan', 'fuck', ['jack', 'peter', 'mike'], 'oye', 'oye', 'oye'] 12 mike
1 #列表嵌套的修改: 2 3 names=["zhangyang","guyan","xihuan","fuck",["jack","peter","mike"],"oye","oye","oye"] 4 5 print(names) 6 7 names2=names.copy() 8 9 names[1]="99" 10 11 names[4][2]="edit" 12 13 print(names) 14 15 print(names2) 16 17 #输出: 18 19 ['zhangyang', 'guyan', 'xihuan', 'fuck', ['jack', 'peter', 'mike'], 'oye', 'oye', 'oye'] 20 ['zhangyang', '99', 'xihuan', 'fuck', ['jack', 'peter', 'edit'], 'oye', 'oye', 'oye'] 21 ['zhangyang', 'guyan', 'xihuan', 'fuck', ['jack', 'peter', 'edit'], 'oye', 'oye', 'oye'] 22 23 #注意:当原列表的嵌套列表发生了修改,则已被copy的列表会自动发生修改 ,非嵌套的列表要素则不会发生变化,这种情况被称为浅copy(也就是copy,仅发生在第一层,这是由内存的构造造成的,嵌套的列表仅仅copy了原列表的内存地址,因此不管改原列表的嵌套值还是改复制后的嵌套的列表的值,都会引起对方的同步修改)
1 #深copy: 2 3 names=["zhangyang","guyan","xihuan","fuck",["jack","peter","mike"],"oye","oye","oye"] 4 5 print(names) 6 7 names2=copy.deepcopy(names) 8 9 names[1]="99" 10 11 names[4][2]="edit" 12 13 print(names) 14 15 print(names2) 16 17 #输出: 18 19 ['zhangyang', 'guyan', 'xihuan', 'fuck', ['jack', 'peter', 'mike'], 'oye', 'oye', 'oye'] 20 ['zhangyang', '99', 'xihuan', 'fuck', ['jack', 'peter', 'edit'], 'oye', 'oye', 'oye'] 21 ['zhangyang', 'guyan', 'xihuan', 'fuck', ['jack', 'peter', 'mike'], 'oye', 'oye', 'oye'] 22 23 注意:深copy才是完整的copy功能,会生成完全独立的2个列表
1 #列表的循环: 2 3 names=["zhangyang","guyan","xihuan","fuck",["jack","peter","mike"],"oye","oye","oye"] 4 5 print(names) 6 7 for i in names: 8 9 print (i) 10 11 #输出: 12 13 ['zhangyang', 'guyan', 'xihuan', 'fuck', ['jack', 'peter', 'mike'], 'oye', 'oye', 'oye'] 14 zhangyang 15 guyan 16 xihuan 17 fuck 18 ['jack', 'peter', 'mike'] 19 oye 20 oye 21 oye
1 #只显示奇数要素项: 2 3 names=["zhangyang","guyan","xihuan","fuck",["jack","peter","mike"],"oye","oye","oye"] 4 5 print(names) 6 7 print(names[0:-1:2])#从第一个显示到最后一个,步长为2,只显示奇数编号的要素 8 9 print(names[::2])#0,或-1可以省略 10 11 #输出: 12 13 ['zhangyang', 'guyan', 'xihuan', 'fuck', ['jack', 'peter', 'mike'], 'oye', 'oye', 'oye'] 14 ['zhangyang', 'xihuan', ['jack', 'peter', 'mike'], 'oye'] 15 ['zhangyang', 'xihuan', ['jack', 'peter', 'mike'], 'oye']
1 #利用浅copy创建联合账号: 2 3 person=['name',['saving',100]] 4 5 p1=person.copy() 6 7 p2=person.copy() 8 9 p1[0]="老公" 10 11 p2[0]="老婆" 12 13 p1[1][1]=50 14 15 print(p1) 16 17 print(p2) 18 19 #输出: 20 21 ['老公', ['saving', 50]] 22 ['老婆', ['saving', 50]] 23 24 注意:只修改了一个人的账号的金额,会自动修改另一个人的账号的金额
1 #enumerate函数:取出list的下标及对应的要素值 2 names=["zhangyang","guyan","xihuan","fuck",["jack","peter","mike"],"oye","oye","oye"] 3 for i in enumerate(names): 4 print(i) 5 #输出: 6 (0, 'zhangyang') 7 (1, 'guyan') 8 (2, 'xihuan') 9 (3, 'fuck') 10 (4, ['jack', 'peter', 'mike']) 11 (5, 'oye') 12 (6, 'oye') 13 (7, 'oye') 14 15 #单独取出下标和list值: 16 names=["zhangyang","guyan","xihuan","fuck",["jack","peter","mike"],"oye","oye","oye"] 17 for index,i in enumerate(names): 18 print(index,i ) 19 #输出: 20 0 zhangyang 21 1 guyan 22 2 xihuan 23 3 fuck 24 4 ['jack', 'peter', 'mike'] 25 5 oye 26 6 oye 27 7 oye