元组

已完成

在 Python 中,还有一个不可变的数据类型是元组

有时,创建数据结构很有用,该结果稍后在程序中不会被更改。 该结构可防止常量数据被意外覆盖,或提高循环访问数据的性能。 这些就是元祖发挥作用的地方。

创建元组的方式与创建列表的方式大致相同,只不过使用圆括号而不是方括号:

t = (1, 2, 3)
t

输出为:

(1, 2, 3)

由于元组是不可变的,因此不能更改其中的元素:

t[1] = 2.0

错误输出为:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-110-823b86083d61> in <module>
----> 1 t[1] = 2.0
TypeError: 'tuple' object does not support item assignment

但是,可引用元组中的元素:

t[1]

输出为:

2

还可对元组切片:

t[:2]

输出为:

(1, 2)

可从列表中创建元组:

l = ['baked', 'beans', 'spam']
l = tuple(l)
l

输出为:

('baked', 'beans', 'spam')

或者,可从元组创建列表:

l = list(l)
l

输出为:

['baked', 'beans', 'spam']

成员身份测试

随着 Python 编程变得越来越复杂,你需要测试列表和元组来查看特定数据的成员身份。 使用 in 运算符执行此操作。

tup = ('a', 'b', 'c')
'b' in tup

输出为:

True

还可使用 not in 来测试列表或元组中是否存在某些内容:

lis = ['a', 'b', 'c']
'a' not in lis

输出为:

False

亲自试一试

  • 如果运行 lis in lis,会发生什么情况? 这是你期望的行为吗?
  • 如果不是,请考虑使用我们在上一单元中讨论过的嵌套列表。

提示 (展开以显示)
lis in lis
False