列表的基本操作:- #!/usr/bin/python3.6
- ls=[123,'123',[123,'123'],123]
- print(ls) #列表没有去重,也是有序的。print出来不变。结果还是:[123,'123',[123,'123'],123]
- print(list('列表可以由字符串生成')) #list()将字符串转换为列表。结果是:['列', '表', '可', '以', '由', '字', '符', '串', '生', '成']
- print(list()) #list()生成一个空列表。结果是[]
- '''
- 1.1 列表的索引,正向递增从0开始,反向递减从-1开始。
- '''
- print(ls[3]) #结果是123
- print(ls[-2]) #取出-2位置的元素,是一个列表。
- #ls[5]执行会报错list index our of range.因为5超出范围了。
- for i in ls:
- print(i*2) #如果是数字,则乘以2,如果是字符串则复制一遍。
- '''
- 上述for循环的执行结果如下;
- 246
- 123123
- [123, '123', 123, '123']
- 246
- '''
- '''
- 1.2 列表的切片有两种。列表[N:M]或列表[N:M:K]。K表示步长。
- 要求N<M,如-3<-1或1<3,否则如果N>M,则返回空列表。
- 冒号:在Python中表示区间,如切片。表示枚举用逗号,如列表。
- '''
- print(ls[1:4]) #第2个元素编号为1,第4个元素编号为3,。因为会取到3个值。结果:['123',[123,'123'],123]
- print(ls[-1:-3])#因为N大于M,返回空列表。结果:[]
- print(ls[-3:-1]) #从-3取到倒数第2个。结果:['123',[123,'123']]
- print(ls[0:4:2]) #按步长为2全部取出。结果:[123,[123,'123']]
- print(ls[::]) #复制一份列表,和原列表完全相同。也可以赋给变量。结果:[123,'123',[123,'123'],123]
- print(ls[1:]) #从编号为1开始取,一直取到最后。结果:['123',[123,'123'],123]
- print(ls[1::2]) #从编号为1开始取,一直取到最后,步长为2。结果:['123',123]
- ls1=[5,6,7,8,9,1,2,3,4]
- '''
- 1.3 列表的操作:
- min、max、list()、len、+、append、insert、clear、pop、remove、reverse、copy、del等。
- 列表的方法主要针对列表变量,实现列表的元素的增、删、改等功能。
- '''
- print(min(ls1)) #返回列表最小值,结果:[1]
- print(max(ls1)) #返回列表最大值,结果:[9]
- ls2=['af','ae','ad','ac','az','aw','bz','bw','bi']
- print(min(ls2)) #返回列表最小值,结果:['ac']
- print(max(ls2)) #返回列表最大值,结果:['bz']
- #print(min(ls)) 这个操作会报错,不同类型无法比较。
- #print(max(ls)) 这个操作会报错,不同类型无法比较。
- print(list({'aa','ab','ac','ad'})) #将集合转换为列表。结果是:['aa','ab','ac','ad']
- print(list({'name':'zhangsan','city':'beijing','phone no':'13912345678'})) #将字典转换成列表。结果:['name','city','phone no']
- ls3=[1,2,3,4,5]
- ls3.append(6)
- print(ls3) #追加6到末尾。结果:[1,2,3,4,5,6]
- ls3.insert(1,7)
- print(ls3) #在编号为1的位置插入元素值7。结果:[1,7,2,3,4,5,6]
- ls3.pop(3)
- print(ls3) #将编号为3的元素删除。结果:[1,7,2,4,5,6]
- ls3.remove(6)
- print(ls3) #将列表中第一个出现的元素6删除。注意,6不是元素编号,而且只删第一个出现的6。结果:[1,7,2,4,5]
- ls3.reverse()
- print(ls3) #reverse后面没有参数,反向处理。结果:[5,4,2,7,1]
- ls4=ls3.copy()
- print(ls4) #复制生成一个新列表。结果:[5,4,2,7,1]
- del ls3[0]
- print(ls3) #删除列表中编号为0的元素。结果:[4,2,7,1]
- del ls3[1:2] #删除列表编号从1到2的元素(不含2)。结果:[4,7,1]
- print(ls3)
- del ls3[0:-1:2]
- print(ls3) #从列表编号为0开始到-1结束,步长为2的元素都删除。结果:[7,1]
- ls3.clear()
- print(ls3) #将列表清空。结果:[]
- print(ls2+ls4) #将列表合并生成新列表。结果:['af','ae','ad','ac','az','aw','bz','bw','bi',5,4,2,7,1]
- '''
- 注意,如果不使用copy()方法复制列表,而使用变量赋值创建新列表,实际上只创建了一个列表的别名。
- 当原列表被clear时,新列表的元素也被清空了。如下:
- '''
- ls5=[1,2,3,4,5,6]
- newls5=ls5
- ls5.clear()
- print(newls5) #会发现newls5的元素被清空了,因为它只是ls5的一个别名。输出为[]。
- '''
- 列表元素的重新赋值用=就可以。支持切片操作的赋值。修改内容可以不等长,但遵循“多增少减"的原则。
- '''
- ls6=[1,2,3,4,5,6]
- ls6[1]=88
- print(ls6) #将编号为1的元素值改为88。结果:[1,88,3,4,5,6]
- ls6[0:5]=[99]
- print(ls6) #将编号从0到5(不含5)的元素合并,值改为99。结果:[99,6]
复制代码 结果是:- [123, '123', [123, '123'], 123]
- ['列', '表', '可', '以', '由', '字', '符', '串', '生', '成']
- []
- 123
- [123, '123']
- 246
- 123123
- [123, '123', 123, '123']
- 246
- ['123', [123, '123'], 123]
- []
- ['123', [123, '123']]
- [123, [123, '123']]
- [123, '123', [123, '123'], 123]
- ['123', [123, '123'], 123]
- ['123', 123]
- 1
- 9
- ac
- bz
- ['ab', 'ac', 'ad', 'aa']
- ['name', 'city', 'phone no']
- [1, 2, 3, 4, 5, 6]
- [1, 7, 2, 3, 4, 5, 6]
- [1, 7, 2, 4, 5, 6]
- [1, 7, 2, 4, 5]
- [5, 4, 2, 7, 1]
- [5, 4, 2, 7, 1]
- [4, 2, 7, 1]
- [4, 7, 1]
- [7, 1]
- []
- ['af', 'ae', 'ad', 'ac', 'az', 'aw', 'bz', 'bw', 'bi', 5, 4, 2, 7, 1]
- []
- [1, 88, 3, 4, 5, 6]
- [99, 6]
复制代码 |