上QQ阅读APP看书,第一时间看更新
3.4 序列型数据元组和列表
Python不仅支持数字、字符串型数据,还支持对一组数据进行处理,这种能表示多个数据的类型称为组合数据类型。和字符串一样,有序列,可以索引及切片的数据类型称为序列数据类型,如列表和元组。所有序列型数据(字符串、元组、列表)都有通用的操作符和函数,见表3-6。
表3-6 序列型数据的操作符和函数
1.元组
元组,例如x=(5,6,8,2,2),由小括号和逗号组成,表3-6中所有的操作符和函数都可以使用,示例代码如下:
#//第3章/3.6.py x=(5,6,8,2,2) y=(5,6) print('5在x内吗:',(5 in x)) print('x+y=',x+y) print('x*2=',x*2) print('索引:',x[0],'切片:',x[:2],'步长切片:',x[::2]) print('长度:',len(x),'最小值:',min(x),'最大值:',max(x),) print('2第1次出现的索引号:',x.index(2)) print('2出现次数:',x.count(2))
运行结果如下:
5在x内吗:True x+y=(5,6,8,2,2,5,6) x*2=(5,6,8,2,2,5,6,8,2,2) 索引:5切片:[5,6]步长切片:[5,8,2] 长度:5最小值:2最大值:8 2第1次出现的索引号:3 2出现次数:2
因为元组一旦定义,就不能修改了,所以一般情况下将不能修改的数据用元组表示,而将能灵活修改的数据用列表表示。
2.列表
列表,例如x=[5,6,8,2,2],由中括号和逗号组成,表3-6所有的操作符和函数都可以使用,代码如下:
#//第3章/3.7.py x=[5,6,8,2,2] y=[5,6] print('5在x内吗:',(5 in x)) print('x+y=',x+y) print('x*2=',x*2) print('索引:',x[0],'切片:',x[:2],'步长切片:',x[::2]) print('长度:',len(x),'最小值:',min(x),'最大值:',max(x),) print('2第1次出现的索引号:',x.index(2)) print('2出现次数:',x.count(2))
运行结果如下:
5在x内吗:True x+y=[5,6,8,2,2,5,6] x*2=[5,6,8,2,2,5,6,8,2,2] 索引:5切片:[5,6]步长切片:[5,8,2] 长度:5最小值:2最大值:8 2第1次出现的索引号:3 2出现次数:2
这里仅将3.6.py文件中的元组修改为列表,即将x和y修改为列表,函数和操作符的使用与3.6.py文件中的用法完全相同。
还有一些列表的操作方法,见表3-7(表中列表list1=[1,'1',[1]])。
表3-7 列表的操作方法
示例代码如下:
#//第3章/3.8.py list1=[1,'1',[1]] list1.append(3) #1最后加入元素3 print(1,":",list1) list1.insert(0,3) #2 0位置插入元素3 print(2,":",list1) list1.clear() #3清除所有元素 print(3,":",list1) list1=[1,'1',[1]] list1.pop(1) #4取出第1个并删除 print(4,":",list1) list1=[1,'1',[1]] list1.remove('1') #5删除首次出现的'1' print(5,":",list1) list1=[1,'1',[1]] list2=list1.copy() #6复制成新列表 print(6,":",list2) l3=[3,1,5] l3.sort(reverse=True) #7降序排列 print(7,":",l3) l3.sort() #8升序排列 print(8,":",l3)
运行结果如下:
1:[1,'1',[1],3] 2:[3,1,'1',[1],3] 3:[] 4:[1,[1]] 5:[1,[1]] 6:[1,'1',[1]] 7:[5,3,1] 8:[1,3,5]
通过索引、切片可以修改指定的元素,代码如下:
#//第3章/3.9.py list1=[1,'1',[1]] list1[0]=3 #1将0位置的元素修改为3 print(1,":",list1) list1=[1,'1',[1]] list1[:2]=[3,3] #2修改0,1元素 print(2,":",list1) list1=[1,'1',[1]] list1[:2]=[6,] #3修改、删除 print(3,":",list1) list1=[1,'1',[1]] list1[:]=[] #4删除所有元素 print(4,":",list1) list1=[1,'1',[3]] print(5,":",list1[2][0]) #5索引3
运行结果如下:
1:[3,'1',[1]] 2:[3,3,[1]] 3:[6,[1]] 4:[] 5:3
访问列表中的列表,list1[2][0]的第1个索引[2]表示取出list1列表2位置的元素[3],第2个索引[0]表示取出列表[3]的0位置的元素3。