[Python Study Notes]列表操作
列表操作
a.切片
1 >>> names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"] 2 >>> names[1:4] #取下标1至下标4之间的数字,包括1,不包括4 3 ['Tenglan', 'Eric', 'Rain'] 4 5 >>> names[1:-1] #取下标1至-1的值,不包括-1 6 ['Tenglan', 'Eric', 'Rain', 'Tom'] 7 8 >>> names[0:3] 9 ['Alex', 'Tenglan', 'Eric'] 10 11 >>> names[:3] #如果是从头开始取,0可以忽略,跟上句效果一样 12 ['Alex', 'Tenglan', 'Eric'] 13 14 >>> names[3:] #如果想取最后一个,必须不能写-1,只能这么写 15 ['Rain', 'Tom', 'Amy'] 16 17 >>> names[3:-1] #这样-1就不会被包含了 18 ['Rain', 'Tom'] 19 20 >>> names[0::2] #后面的2是代表,每隔一个元素,就取一个 21 ['Alex', 'Eric', 'Tom'] 22 23 >>> names[::2] #和上句效果一样 24 ['Alex', 'Eric', 'Tom']
b.追加
1 >>> names 2 ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy'] 3 4 >>> names.append("我是新来的") 5 6 >>> names 7 ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
c.插入
1 >>> names 2 ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的'] 3 4 >>> names.insert(2,"强行从Eric前面插入") 5 6 >>> names 7 ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的'] 8 9 >>> names.insert(5,"从eric后面插入试试新姿势") 10 11 >>> names 12 ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
d.修改
>>> names ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的'] >>> names[2] = "该换人了" >>> names ['Alex', 'Tenglan', '该换人了', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
e.删除
1 >>> del names[2] 2 3 >>> names 4 ['Alex', 'Tenglan', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的'] 5 6 >>> del names[4] 7 8 >>> names 9 ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的'] 10 11 >>> names.remove("Eric") #删除指定元素 12 13 >>> names 14 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', '我是新来的'] 15 16 >>> names.pop() #删除列表最后一个值 17 '我是新来的' 18 19 >>> names 20 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy']
f.列表合并
1 >>> names 2 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy'] 3 4 >>> b = [1,2,3] 5 6 >>> names.extend(b) 7 8 >>> names 9 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]
g.浅copy
1 >>> names 2 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3] 3 4 >>> name_copy = names.copy() 5 6 >>> name_copy 7 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]
h.深copy
1 import copy 2 3 n1 = [1,2,3] 4 5 n2 = copy.deepcopy(n1)
i.统计
1 >>> names 2 ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3] 3 4 >>> names.count("Amy") 5 2
j.排序
1 >>> names 2 ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3] 3 >>> names.sort() #排序 4 Traceback (most recent call last): 5 File "<stdin>", line 1, in <module> 6 TypeError: unorderable types: int() < str() #3.0里不同数据类型不能放在一起排序了,擦 7 >>> names[-3] = '1' 8 >>> names[-2] = '2' 9 >>> names[-1] = '3' 10 >>> names 11 ['Alex', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3'] 12 >>> names.sort() 13 >>> names 14 ['1', '2', '3', 'Alex', 'Amy', 'Amy', 'Tenglan', 'Tom'] 15 16 >>> names.reverse() #反转 17 >>> names 18 ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']
k.获取下标
1 >>> names 2 ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1'] 3 >>> names.index("Amy") 4 2 #只返回找到的第一个下标
最有用的语言,除了English,其次可能是Python