元组tuple
元组属于属于不可变序列,不能修改元组中的元素。因此元组内衣增加、修改、删除元素相关的方法。列表属于可变序列,可以任意修改列表中的元素
因此,元组的创建和删除,元组中元素的访问和计数即可。元组支持:
- 索引访问
- 切片操作
- 连接操作
- 成员关系操作
- 比较元素操作
- 计数:元组长度len()、最大值max()、最小值min()、求和sum()等.
元组的创建tuple(), a=(1),a=10,20,30
总结:tuple()可以接收列表、字符串、其它序列类型、迭代器等生成元组
List()可以接收元组,字符串、其它序列类型、迭代器等生产列表
元组的删除del(a)
>>> a = (10,20) #小括号 >>> type(a) <class 'tuple'> >>> a=10,20 #不加小括号新建元组 >>> a (10, 20) >>> type(a) <class 'tuple'> >>> tuple("abc") ('a', 'b', 'c') >>> tuple() #创建空的列表对象 () >>> tuple(range(3)) #传range对象 (0, 1, 2) >>> tuple([2,3,4]) #传列表对象 (2, 3, 4) >>> >>> del(a) |
元组的元素访问和计数
>>> a = (10,20,30) >>> a[1] 20 >>> a[1]=300 #不支持修改 Traceback (most recent call last): File "<pyshell#16>", line 1, in <module> a[1]=300 TypeError: 'tuple' object does not support item assignment >>> a[1:10] (20, 30) >>> b = (30,20,40) >>> sorted(b) #排序 [20, 30, 40] >>> c = 1,20 >>> d = 20,30 >>> c+d (1, 20, 20, 30) >>> a (10, 20, 30) >>> c (1, 20) >>> len(c) 2 >>> sum(c) 21 >>> max(c) 20 >>> min(c) 1 >>> cd=zip(c,d) #zip >>> list(cd) [(1, 20), (20, 30)] >>> |
生成器推导式创建元组
>>> s = (x*2 for x in range(5)) >>> s <generator object <genexpr> at 0x0000025BBF6C9390> >>> tuple(s) (0, 2, 4, 6, 8) >>> list(s) #第一次访问一次元素,第二次就为空了,需要再生产一次 [] >>> s <generator object <genexpr> at 0x0000025BBF6C9390> >>> 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#42>", line 1, in <module> s.__next__() StopIteration |
总结:
- 元组的核心特点是:不可变序列
- 元组的访问和处理速度比列表块
- 与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用