元组
- 元组的创建
- 元组的元素访问和计数
- 生成器推导式创建元组
列表属于可变序列,可以任意修改列表中的元素,元组属于不可变序列,不能修改元组中的元素。因此,元组没有增加元素、修改元素、删除元素相关的方法。
因此,我们只需要学习元组的创建和删除,元组中元素的访问和计数即可。元组支持如下操作:
- 索引访问
- 切片操作
- 连接操作
- 成员系列操作
- 比较运算操作
- 计数:元组len()、最大值max()、最小值()、求和sum()等
元组的创建
1.通过()创建元组,小括号可以省略
a=(10,20,30)或者a=10,20,30
如果元组只有一个元素,则必须后面加逗号,这是因为解释器会把整数(1)解释为整数1,(1,)解释为元组。
2.通过tuple()创建元组
tuple(可迭代对象)
例如:
总结:
tuple()可以接收列表、字符串、其他序列类型、迭代器等生成元组。
list()可以接收元组、字符串、其他序列类型、迭代器等生成列表。
元组的元素访问和计数
1.元组的元素不能修改
2.元组的元素访问和列表一样,只不过返回的仍然是元组对象。
3.列表关于排序的方法list.sorted是修改原列表对象,元组没有该方法。如果要对元组排序,只能使用内置函数sorted(tupleObj),并且生成新的列表对象。
4.zip(列表1,列表2,…)将对个列表对应位置的元素组合成为元组,并返回这个zip对象。
list把列表都处理为元组
生成器推导式创建元组
从形式上看,生成器推导式与列表推导式类似,只是生成器推导式使用小括号,列表式推导器生成的不是列表也不是对象,而是一个生成器对象。
我们可以通过生成器对象,转化成列表和元组。也可以使用生成器对象的_next_()
方法进行遍历,或者直接作为迭代器对象来使用。不管用什么方式使用,元素访问结束后,如果需要访问其中元素,必须重新创建该生成器对象。
操作:生成器的使用测试
只能用一次
元组总结:
1.元组的核心特点是:不可变序列
2.元组的访问和处理比列表快
3.与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用。