目录
元组相当于轻量级的列表
元组中元素不可变
只用于读取而不修改,建议使用元组
元组所有元素放在一个()中,元素之间用“,”隔开,()可以省略,但是一个元素时“,”不可省略,与运算运算区别开。
元组的创建
赋值运算符"="将一个元组赋值给变量即可创建元组对象。
>>>a_tuple = (1,2,3) #直接把元组赋值给一个变量
>>>a_tuple = () #创建一个空元组
>>>a_tuple = tuple() #创建一个空元组
转换其他类型序列成元组
a_tuple = tuple([1,2,3]) #把列表强制转化成元组
将迭代对象固化成元组
a_tuple = tuple((range(10))) #将迭代对象固化成元组
很多内置函数的返回值也是包含了若干元组的可迭代对象,如enumerate()、zip()等
>>> a_list = list(enumerate(range(5)))
>>> a_list
[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)]
>>> a_list = list(zip(range(3),"abcdefg"))
>>> a_list
[(0, 'a'), (1, 'b'), (2, 'c')]
元组的读取
元组名[索引]
元组名[开始索引:结束索引:步长] #若索引在元组前或后,则截断或返回空元组,不报错
方法与列表类似
>>> a_tuple = (1,2,3,4)
>>> a_tuple[2]
3
>>> a_tuple[5] #索引越界,报错
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
a_tuple[5]
IndexError: tuple index out of range
>>> a_tuple[1:3]
(2, 3)
元组元素的定位
index()方法获取元素首次出现的索引
>>> a_tuple = (1,2,3,3,4)
>>> a_tuple.index(3)
2
删除元组
因为元组中元素不可变,所以只能对整个元组操作删除
del语句用于删除元组
>>> a_tuple = (1,2,3,4)
>>> a_tuple
(1, 2, 3, 4)
>>> del a_tuple
>>> a_tuple
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
a_tuple
NameError: name 'a_tuple' is not defined
元组其他常用方法和常用内置函数
count()函数统计指定元素出现的次数
len()函数输出元组中元素的个数
map()函数把元素映射到元组的每个函数
filter()函数根据指定函数的返回值对列表元素进行过滤
+、+=、in方法也与列表类似
列表与元组的区别
元组的处理速度比列表快
元组不可变,可以做为字典的键,列表不行
列表与元组的转换
用list()函数与tuple()函数相互转化,且生成新的对象,对原对象不影响。
元组的应用
利用元组来一次性给多个变量赋值
>>> a_tuple = ("a","b","c")
>>> a_tuple = (1,2,3,4)
>>> (a,b,c,d) = a_tuple
>>> a,b,c,d
(1, 2, 3, 4)