Python学习-list操作
Python列表(list)操作:
- 序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
- Python有6个序列的内置类型,但最常见的是列表和元组。
- 序列都可以进行的操作包括索引,切片,加,乘,检查成员。
- 此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
- 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
- 列表的数据项不需要具有相同的类型
列表创建与更新:
1 #列表更新 2 list = ['physics','chemistry',1997,2000] 3 print('Value available at index 2:',list[2]) #列表的索引从0开始,依次为1 4 list[2] = 2001 #通过直接赋值可以对列表进行更新 5 print('Value available at index 2:',list[2]) 6 7 #结果: 8 #Value available at index 2: 1997 9 #Value available at index 2: 2001
列表中添加元素:
1 #使用append向列表添加元素 2 list = ['physics','chemistry'] 3 list.append('wangtao') #向列表中添加元素'wangtao' 4 print(list[1]) 5 print(list) 6 7 #结果 8 #chemistry 9 #['physics', 'chemistry', 'wangtao']
删除列表元素:
1 #删除列表元素 2 list = ['physics', 'chemistry', 1997, 2000] 3 print(list) 4 del list[1] #使用del语句可以对列表元素进行删除 5 print(list) 6 7 #结果 8 #['physics', 'chemistry', 1997, 2000] 9 #['physics', 1997, 2000]
列表操作符:
1 #列表操作符 2 import operator 3 list = [1,2,3,4,5] 4 list2 = [2,3,4,5] 5 print(len(list)) #len用于获取列表的长度 6 print(list+list2) #'+'对两个列表的元素组合成一个列表 7 print(list*2) #'*'重复列表 8 print(3 in list) #判断元素是否位于列表中 9 print(6 in list) #判断元素是否位于列表中 10 print(max(list)) #返回列表中元素最大值 11 print(min(list)) #返回列表中元素最小值 12 print(operator.eq(list,list2))
1 #Python中部分operator操作 2 operator.lt(a, b) 3 operator.le(a, b) 4 operator.eq(a, b) 5 operator.ne(a, b) 6 operator.ge(a, b) 7 operator.gt(a, b) 8 operator.__lt__(a, b) 9 operator.__le__(a, b) 10 operator.__eq__(a, b) 11 operator.__ne__(a, b) 12 operator.__ge__(a, b) 13 operator.__gt__(a, b)
13 #在python 3中没有cmp函数了,若需要比较两个list的元素,需要调用operator模块 14 15 16 #结果: 17 #5 18 #[1, 2, 3, 4, 5, 2, 3, 4, 5] 19 #[1, 2, 3, 4, 5, 1, 2, 3, 4, 5] 20 #True 21 #False 22 #5 23 #1 24 #True
列表截取:
1 #列表截取 2 list = ['physics', 'chemistry', 1997, 2000] 3 print(list[2]) #输出索引为'2'的元素 4 print(list[-3]) #输出倒数第三个元素 5 print(list[1:]) #从索引'1'开始输出列表元素 6 7 #结果: 8 #1997 9 #chemistry 10 #['chemistry', 1997, 2000]
其余列表操作:
1、list.append(obj):在列表末尾添加新的对象 2、list.count(obj):统计某个元素在列表中出现的次数 3、list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) 4、list.index(obj):从列表中找出某个值第一个匹配项的索引位置 5、list.insert(index, obj):将对象插入列表 6、list.pop(obj=list[-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 7、list.remove(obj):移除列表中某个值的第一个匹配项 8、list.reverse():反向列表中元素 9、list.sort([func]):对原列表进行排序
例程:
1 #!/usr/bin/env python3 2 # -*- coding: utf-8 -*- 3 # @Time : 2018/3/31 16:01 4 # @Author : yang 5 # @File : names.py 6 # @Software: PyCharm 7 8 names = ['zhangyang','guyun','xiangpeng','xuliangchen'] 9 #添加 10 #names.append('leihaidong') 11 #print(names) #['zhangyang', 'guyun', 'xiangpeng', 'xuliangchen', 'leihaidong'] 12 13 #插入 14 # names.insert(1,'chenxiang') 15 # print(names) #['zhangyang', 'chenxiang', 'guyun', 'xiangpeng', 'xuliangchen'] 16 17 #删除 18 # names.remove('zhangyang') #直接移除列表中的元素 19 # print(names) #['guyun', 'xiangpeng', 'xuliangchen'] 20 21 # names.pop() #未指定索引时,直接移除列表中最后一个元素 22 # print(names) #['zhangyang', 'guyun', 'xiangpeng'] 23 24 # names.pop(0) #指定删除元素的索引,删除列表中第一个元素 25 # print(names) #['guyun', 'xiangpeng', 'xuliangchen'] 26 27 # del names[1] #删除列表中索引为'1'的元素 28 # print(names) #['zhangyang', 'xiangpeng', 'xuliangchen'] 29 30 #修改 31 # names[1] = 'wangchao' #将列表第二个元素修改为'wangchao' 32 # print(names) #['zhangyang', 'wangchao', 'xiangpeng', 'xuliangchen'] 33 34 #输出元素的索引编号 35 # print(names.index('guyun')) #1 36 37 #逆序输出列表 38 # names.reverse() #将列表元素逆序排列 39 # print(names) #['xuliangchen', 'xiangpeng', 'guyun', 'zhangyang'] 40 41 #输出列表特定区间的元素 42 #names[start:stop],包括起始,不包括终点,也就是左闭右开 43 #print(names[0:2]) #['zhangyang', 'guyun'] 44 #print(names[1:]) #打印输出从索引'1'开始到结束的所有元素:['guyun', 'xiangpeng', 'xuliangchen'] 45 #print(names[-1]) #打印输出从右往左数的第一个元素:xuliangchen 46 #print(names[-3:-1]) #左闭右开,打印输出从右往左数的第三个元素和第二个元素:['guyun', 'xiangpeng']