元组属于不可变序列,不能修改元组中的元素。因此元组没有增加元素、修改元素、删除元素相关的方法。
元组支持如 下操作:
1. 索引访问
2. 切片操作
3. 连接操作
4. 成员关系操作
5. 比较运算操作
6. 计数:元组长度 len()、最大值 max()、最小值 min()、求和 sum()等。
元组的创建:
1. 通过()创建元组。小括号可以省略。
a = (10,20,30) 或者 a = 10,20,30
注意:如果元组只有一个元素,则必须后面加逗号。这是因为解释器会把(1)解释为整数 1,而(1,)才会解释为元组。
>>> a = (1)
>>> type(a)
>>> a = (1,) #或者 a = 1,
>>> type(a)
2. 通过 tuple()创建元组:
>>> tuple("abc")
('a', 'b', 'c')
>>> tuple(range(3))
(1, 2, 3)
>>> tuple([2,3,4])
(2, 3, 4)
比较:
tuple()可以接收列表、字符串、其他序列类型、迭代器等生成元组。
list()可以接收元组、字符串、其他序列类型、迭代器等生成列表。
元组的元素访问:
元组的元素访问和列表一样,只不过返回的仍然是元组对象。
>>> a = (20,10,30,9,8)
>>> a[1]
10
>>> a[1:3]
(10, 30)
>>> a[:4]
(20, 10,30, 9)
元组的排序,只能使用内置函数 sorted(tupleObj),并生成新的列表对象。
>>> a = (20,10,30,9,8)
>>> sorted(a)
[8, 9, 10, 20, 30]
zip打包:
zip(列表 1,列表 2,...)将多个列表对应位置的元素组合成为元组,并返回这个 zip 对象。
>>> a = [10,20,30]
>>> b = [40,50,60]
>>> c = [70,80,90]
>>> d = zip(a,b,c)
>>> list(d)
[(10, 40, 70), (20, 50, 80), (30, 60, 90)]
生成器推导式创建元组:
生成器推导式生成的不是列表也不是元组,而是一个生成器对象。我们可以通过生成器对象,转化成列表或者元组。也可以使用生成器对象的__next__() 方法进行遍历,或者直接作为迭代器对象来使用。不管什么方式使用,元素访问结束后,如果需要重新访问其中的元素,必须重新创建该生成器对象。
>>> s = (x*2 for x in range(5))
>>> tuple(s)
(0,2,4,6,8)
>>> tuple(s)
()