1. 简介
元组是不可变的列表
- 列表使用中括号,元组使用小括号
- 列表内容允许扩展,元组内容不可变
- 列表内存存储动态变化,元组创建后固定不变
- 列表效率较低,元组效率最高
- 列表运行时数据需要变更时使用,元组用于保存稳定不变的数据
列表可以用于保存天气、股市等动态数据,而用元组来保存国家名、元素周期表等静态数据
2. 创建元组
元组名 = (元素, 元素, 元素)
元组名 = 元素, 元素, 元素
元组创建方式跟列表相同
建议使用 方法1 创建元组,会使程序看起来更加严谨
如果元组只有一个元素时,必须在这个元素后增加逗号 (元素,) 说明这是一个元组
#方法1创建元组
>>> t1 = ('a', 'b', 'c', 1, 2, 3)
>>> print(t1)
('a', 'b', 'c', 1, 2, 3)
>>> print(type(t1))
<class 'tuple'>
# 方法2创建元组
>>> t2 = 'a', 'b', 'c', 1, 2, 3
>>> print(t2, type(t2))
('a', 'b', 'c', 1, 2, 3) <class 'tuple'>
# 单元素元组
>>> t3 = ('a')
>>> print(type(t3))
<class 'str'>
>>> t3 = ('a',)
>>> print(type(t3))
<class 'tuple'>
3. 元组运算符
元组允许使用元组运算符来创建新的元组
+
用法:元组1 + 元组2
注意相加的前后顺序,后面的元组元素会附加到前面元组的元素之后,合并成为一个新元组
*
用法:元组 * 次数
元素自增是元组里所有元素增加指定的次数,附加到元组末
# 合并
>>> t1 = ('a','b','c')
>>> t2 = (1,2,3)
>>> t3 = t1 + t2
>>> print(t3)
('a', 'b', 'c', 1, 2, 3)
# 自增
>>> t4 = ('hello', 'world') * 2
>>> print(t4)
('hello', 'world', 'hello', 'world')
元组运算符同样适用于列表:列表1 + 列表2,列表 * #
4. 获取元组数据
元组名[索引]
元组数据的获取方法与列表完全相同,支持 正序索引、倒序索引、范围取值、成员运算符、遍历 等
>>> t1 = ('a', 'b', 'c', 1, 2, 3)
#正序索引
>>> print(t1[4])
2
#倒序索引
>>> print(t1[-1])
3
#范围取值
>>> print(t1[1:4])
('b', 'c', 1)
#成员运算符
>>> print('b' in t1)
True
>>> print('b' not in t1)
False
# 遍历
>>> t1 = ('a', 'b', 'c', 1, 2, 3)
>>> for i in t1:
print(i)
a
b
-- snip --
5. 修改元组数据
元组在创建后内容不可变,无法执行修改、增加操作
但是可以 给元组重新赋值 达到修改目的:
元组 = (新元素, 新元素) #之前的元组元素就会被覆盖掉
如果元组内持有列表,那么列表的内容是允许被修改的:
>>> t2 = (['张三', 1995, 'ShangHai'], ['李四', 1996, 'BeiJing'])
>>> zs = t2[0]
>>> zs[2] = 'WuHan'
>>> print(t2)
(['张三', 1995, 'WuHan'], ['李四', 1996, 'BeiJing'])