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']
从第一位开始连续取到2号要素:
 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位要素:
 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']    
取最后2位要素:
 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
追加list的要素:
 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']
删除列表要素:(POP方法,不指定则默认删除最后一个,指定下标则相当于del) 
 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
统计list内要素值相同的个数:
 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']
2个列表合并: 
 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']
复制一个列表:(3种浅copy) 
 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个列表
深copy:
 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     注意:只修改了一个人的账号的金额,会自动修改另一个人的账号的金额
利用浅copy创建联合账号:
 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
enumerate枚举函数

 

 

posted on 2017-11-13 14:34  敏少爷  阅读(173)  评论(0编辑  收藏  举报

导航