列表和元组
列表和元组都属于序列类型(sequence)。序列对象中的元素都是有序存放的,可以通过编号访问其元素。两者最大的区别在于列表是一种可变序列支持修改其元素,而元组是一种不可变序列,不能修改其元素。
列表
列表(list)是一种可变序列。列表用方括号定义,元素间用逗号隔开。列表的元素可以是任意的数据类型(数字字符串,列表,元组,字典,都可以作为其元素)。
列表的定义
>>> list1=['a','b','c','d','e','f']
>>> list1
['a', 'b', 'c', 'd', 'e', 'f']
>>> list2=[1,2,3,'a','efg']
>>> list2
[1, 2, 3, 'a', 'efg']
这里说明list1的元素与位置编号的关系
正位置编号 0 1 2 3 4 5
列表元素 a b c d e f
负位置编号 -6 -5 -4 -3 -2 -1
列表的简单操作(更多操作放在序列通用操作中演示)
>>> list1[5] #正数索引
'f'
>>> list1[-1] #负数索引
'f'
>>> list3=list1+list2 #列表相加
>>> list3
['a', 'b', 'c', 'd', 'e', 'f', 1, 2, 3, 'a', 'efg']
>>> list4=[list1,list2] #列表的嵌套
>>> list4
[['a', 'b', 'c', 'd', 'e', 'f'], [1, 2, 3, 'a', 'efg']]
>>> list4[1][4] #索引嵌套列表元素
>>> list1[0]=1 #修改列表元素(前面说过列表元素是可变的)
>>> list1
[1, 'b', 'c', 'd', 'e', 'f']
'efg'
元组
元组(tuple)是一种不可变序列类型。元组用圆括号定义,元素间用逗号隔开。再不引起语法错误的前提下,一组用逗号隔开的值,系统默认创建元组。或者说元组的定义可以没有圆括号。
元组的创建
>>> tuple1=('a','b','c','d') #圆括号定义元组
>>> tuple1
('a', 'b', 'c', 'd')
>>> tuple2=1,2,'a' #系统默认定义元组
>>> tuple2
(1, 2, 'a')
元组的简单操作
>>> tuple2[1] #元组元素的引用
2
>>> tuple3=tuple1+tuple2 #元组元素相加
>>> tuple3
('a', 'b', 'c', 'd', 1, 2, 'a')
>>> tuple1[2]=1 #企图改变元组的元素,元组是不可变的序列因此会报错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
参考文献:秦颖.Python实用教程.北京:清华大学出版社,2016.