【AI编程学习之Python】第十一天:Python的元组
发布者:admin发表于:25天前阅读数:118评论:0
关键词:aipython

python_AI

列表属于可变序列,可以任意修改列表中的元素。

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

因此,我们只需要学习元组的创建和删除,元组中元素的访问和计数即可。元组支持如下操作:

1.索引访问

2.切片操作

3.连接操作

4.成员关系操作

5.比较运算操作

6.计数:元组长度len()、最大值max()、最小值min()、求和sum()等。

创建元组

  1. 通过() 创建元组。小括号可以省略。

a=(1,2,3) 或 a=1,2,3

如果元组只有一个元素,则必须后面加逗号。这是因为解释器会把(1)解释为整数1,(1,)解释为元组。

>>>a=(1,2,3)>>>a=(1,) //一个元素时,必须加逗号>>>a=1,2,3
  1. 通过tuple()创建元组

    tuple(<可迭代对象>) 强制转换成元组

    >>>b=tuple()>>>b=tuple("abc")>>>b=tuple(range(3))>>>b=tuple([2,3,4])b=(x*2 for x in range(8)) //循环创建 b.__next__() 指针后移
总结:tuple() 可以接收列表、字符串、其他序列类型、迭代器等生成元组。list() 可以接收元组、字符串、其他序列类型、迭代器等生成列表。### 元组的元素访问和计数1. 元组的元素不能修改```python>>>a=(1,2,3,4)>>>a[2]=9Traceback (most recent call last): File "<pyshell#1>", line 1, in <module> a[2]=9TypeError: 'tuple' object does not support item assignment
  1. 元组的元素访问和列表一样,只不过返回的仍然是元组对象
>>>b=(1,2,3,4)b[0]>>>b[1:3](2,3,4)
  1. 列表关于排序的方法list.sorted()是修改原列表对象,元组没有该方法。如果要对元组排序,只能使用内置函数sorted(tupleObj),并生成新的列表对象。
>>>a=(8,6,2,3,5)>>>sorted(a)[2,3,5,6,8]

zip

zip(列表1,列表2,…)将多个列表对应位置的元素组合成为元组,并返回这个zip对象。

>>>a=[1,2,3]>>>b=[4,5,6]>>>c=zip(a,b)>>>c<zip object at 0x000002DBEF496B40>>>>list(c)[(1,2,3),(4,5,6)]

生成器推导或创建元组

从形式上看,生成器推导式与列表推导式类似,只是生成器推导式使用小括号。列表推导式直接生成列表对象,生成器推导式生成的不是列表也不是元组,而是一个生成器对象。

我们可以通过生成器对象,转化成列表或者元组。也可以使用生成器对象的next\()方法进行遍历,或者直接作为迭代器对象来使用。不管什么方式使用,元素访问结束后,如果需要重新访问其中的元素,必须重新创建该生成器对象。

>>>s=(x*2 for x in range(5))>>>s<generator object <genexpr> at 0x000002DBECAC3780>>>>tuple(s)(0,2,4,6,8)>>>list(s) #只能访问一次,第二次就为空,需要再生成一次
>>>s=(x*2 for x in range(5))>>>s.__next__()0>>>s.__next__()2>>>s.__next__()4>>>s.__next__()6>>>s.__next__()8>>>s.__next__()Traceback (most recent call last): File "<pyshell#14>", line 1, in <module> s.__next__()StopIteration

完美岛AI推荐

元组总结

1 - 元组的核心特点是:不可变序列。

2 - 元组的访问和处理速度比列表快。

3 - 与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用。