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