一、列表
1.定义与访问元素(按索引)
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan list_a = ["a","b","c",1,2,3] list_b = [] print(type(list_a),type(list_b)) #<class 'list'> <class 'list'> print(list_a[0]) #a print(list_a[1]) #b print(list_a[-1]) #3 #print(list_b[0]) #空列表,这样会报错,IndexError: list index out of range
2.切片(分片)
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan list_a = ["a","b","c",1,2,3] print(list_a[1:3]) #取索引为第一和第二的元素:['b', 'c'] print(list_a[-3:-1]) #负数表明从右开始计数,取索引为倒数第三和倒数第二的元素:[1, 2] print(list_a[-3:]) #取最后三个元素 :[1, 2, 3] print(list_a[0:]) #从第一个元素开始输出,输出全部结果:['a', 'b', 'c', 1, 2, 3] print(list_a[:3]) #取前三个元素,等同于 print(list_a[0:3]):['a', 'b', 'c']
第一个索引的元素包含在分片内,第二个索引的元素不包含在分片内。像数学里的a<=x<b ,x是我们需要得到的元素,a是分片操作中的第一个索引,b是第二个索引,b不包含在x的范围内。
3.增加元素
语法:list.append(obj),追加到后面。任意指定位置用insert(index,obj)方法,一次只能插入一个元素
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan list_a = ["a","b","c",1,2,3] list_a.append("python") print(list_a) #追加到后面 :['a', 'b', 'c', 1, 2, 3, 'python'] list_a.insert(2,"NBA") #表示把"NBA"插入到下标为2的位置,即第3个位 print(list_a) #['a', 'b', 'NBA', 'c', 1, 2, 3, 'python']
4.修改元素
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan list_a = ["a","b","c",1,2,3] list_a[2] = "about" #直接修改 print(list_a) # ['a', 'b', 'about', 1, 2, 3]
5.删除元素
5.1 list.remove(obj)
5.2 del list[x]
5.3 list.pop(x) = del list[x],如果不输入下标, list.pop() ,默认删除最后一个
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan list_a = [2,3,4,5,-1,0,1,2,3] list_a.remove(2) #此参数不是下标,是元素,有重复元素时,删掉第一个 :[3, 4, 5, -1, 0, 1, 2, 3] del list_a[-1] #-1代表最后一个元素 :[3, 4, 5, -1, 0, 1, 2] list_a.pop(3) #删掉第三个元素 :[3, 4, 5, 0, 1, 2] list_a.pop() #删掉最后一个元素 :[3, 4, 5, 0, 1] print(list_a)
6.确定某个元素所在的位置
list.index(obj),当元素重复时,返回第一个位置
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan list_a = [2,3,4,5,-1,0,1,2,3] print(list_a.index(3)) #返回元素为3的位置,如有重复元素,则返回第一个的位置:1 print(list_a[list_a.index(3)]) #索引 :3
7.copy
7.1 浅copy
7.1.1 用copy模块中的copy方法
7.1.2 用切片的方式

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # Author:Hiuhung Wan 4 import copy 5 person =["name",["saving",100]] 6 p2 = person[:] 7 print(p2)
7.1.3 用列表自带的copy()方法

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # Author:Hiuhung Wan 4 import copy 5 person =["name",["saving",100]] 6 p3 = person.copy() 7 print(p3)
7.1.4 list()方法

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # Author:Hiuhung Wan 4 import copy 5 person =["name",["saving",100]] 6 p4 = list(person) 7 print(p4)
7.2 深copy
copy.deepcopy(list)

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # Author:Hiuhung Wan 4 import copy 5 person =["name",["saving",100]] 6 p5 =copy.deepcopy(person) 7 person[0] = "Wenxh" 8 person[1][0] = "salary" 9 print(person) 10 print(p5)
8.其他常用方法
8.1 list.count(ojb),统计元素出现的次数
8.2 list.clear(),清除列表,列表就没有了
8.3 list.reverse(),列表元素反转
8.4 list.sort(),排序(特殊符号<数字<大写<小写,按ASCII排序)
8.5 list.extend(list2),追加,合并

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # Author:Hiuhung Wan 4 list_a = ["pen","pencil","book","watch","book","coat"] 5 list_b = ["0car","Ahouse","umbrella","#tichet","shirt"] 6 print(list_a.count("book")) #统计元素出现的次数 :2 7 #list_a.clear() #清除列表,列表就没有了(空) :[] 8 print(list_a) 9 list_a.reverse() #列表元素反转 10 print(list_a) #['coat', 'book', 'watch', 'book', 'pencil', 'pen'] 11 list_b.sort() #排序(特殊符号<数字<大写<小写,按ASCII排序) 12 print(list_b) #['#tichet', '0car', 'Ahouse', 'shirt', 'umbrella'] 13 list_a.extend(list_b) #合并,此时list_a的值已发生改变 14 print(list_a) #['coat', 'book', 'watch', 'book', 'pencil', 'pen', '#tichet', '0car', 'Ahouse', 'shirt', 'umbrella']
二、元组
也叫只读列表,一旦创建,便不能更改
1.语法:
tuple = ('ZhangBinbin','MaAiping','TuHui')
2.方法:只有两个,一个是count,一个是index。