元组
在 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