Python——元组

        元组属于不可变序列,不能修改元组中的元素。因此元组没有增加元素、修改元素、删除元素相关的方法。

        元组支持如 下操作:

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)
()

你可能感兴趣的:(python)