本文已参与「新人创作礼」活动,一起开启掘金创作之路。
列表非常适用于储存在程序运行期间可变化的数据集。列表是可以修改的。但是有些时候需要一些不可以修改的元素,这时候元组可以满足这种需求。
因此元组被称为:不可变的列表。
值得注意的是:元组使用小括号(),列表使用方括号[ ]。
- 看一下元组的类型
x = (200, 50)
print(type(x))
<class 'tuple'>
-
创建元组可以用小括号 (),也可以什么都不用,用 ()可增加可读性。
-
元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用。
x = (200, 50)
print(x[0])
# 200
print(x[1])
# 50
x = (66)
print(type(x))
# <class 'int'>
x = 1, 2, 3
print(type(x))
# <class 'tuple'>
x = ()
print(type(x))
# <class 'tuple'>
x = (1,)
print(type(x))
# <class 'tuple'>
- 创建二维元组
x = (1, 2, 3), (11, 12)
print(x)
# ((1, 2, 3), (11, 12))
print(x[0])
# (1, 2, 3)
print(x[0][0], x[0][1], x[0][2])
# 1 2 3
print(x[1][1])
# 12
- 我们尝试修改元组
x = (200, 50)
x[0] = 250
# Traceback (most recent call last):
File "D:\python\py3.7\练习.py", line 2, in <module>
x[0] = 250
TypeError: 'tuple' object does not support item assignment
可以看出像列表一样修改元组就会报错!
- 元组有不可更改的性质,因此不能直接给元组的元素赋值,但是只要元组中的元素可更改,那么我们可以直接更改其元素,注意这跟赋值其元素不同。
x = (1, 2, 3, [4, 5, 6])
print(x)
# (1, 2, 3, [4, 5, 6])
x[3][0] = 7
print(x)
# (1, 2, 3, [7, 5, 6])
- 元组相关的操作符
- 等号操作符:
== - 连接操作符
+ - 重复操作符
* - 成员关系操作符
in、not in
x_1 = (123, 456)
x_2 = (456, 123)
x_3 = (123, 456)
print(x_1 == x_2)
# False
print(x_1 == x_3)
# True
x_4 = x_1 + x_2
print(x_4) # (123, 456, 456, 123)
x_5 = x_3 * 3
print(x_5)
# (123, 456, 123, 456, 123, 456)
print(123 in x_1)
# True
print(456 not in x_1)
# False
- 内置方法
count和index。
- .count()是查看元组中的某个元素个数
- .index()索引某个元素位置
x = ('a', 'b', 'c')
print(x.count('b'))
# 1
print(x.index('b'))
# 1
补充:元组元素索引是从0开始的,所以元素'b'索引结果是 1。