元组
- Python内置的数据结构之一,是一个不可变序列。
元组的写法与用法与列表极其相似,写法上元组使用小括号,而列表使用中括号。
t = ('hello', 'python', 90)
不可变序列与可变序列
- 不可变序列
没有增删改操作的序列称为不可变序列,例如:字符串、元组
- 可变序列
能进行增删改操作的序列称为可变序列,例如:列表、字典
元组的创建方式
- 直接使用小括号
t = (‘python’, ‘hello’, 90)
- 使用内置函数tuple()
t = tuple(‘python’, ‘hello’, 90)
- 只包含一个元组的元素需要使用逗号和小括号
t = (10, )
空列表、空字典、空元组
lst = []
lst1 = list()
d = {}
d1 = dict()
c = ()
c1 = tuple()
print('空列表:', lst, lst1)
print('空字典:', d, d1)
print('空元组:', c, c1)
空列表: [] []
空字典: {} {}
空元组: () ()
为什么要将元组设计成不可变序列
-
在多任务环境下,同时操作对象不需要加锁,因此在程序中尽量使用不可变序列。
-
注意事项:元组中储存的是对象的引用
如果元组中对象本身是不可变对象,则不能再引用其他对象
如果元组中的对象是可变对象,则可变对象的引用不允许改变,但数据可以改变。

t = (10, [20, 30], 9)
print(t, type(t))
print(t[0], type(t[0]), id(t[0]))
print(t[1], type(t[1]), id(t[1]))
print(t[2], type(t[2]), id(t[2]))
# 将t[1]修改为100
# print(id(100))
# t[1] = 100 由报错知元组是不允许修改元素的;但元组中的列表是可变序列,所以可以向列表中添加元素,而列表的内存地址不变。
t[1].append(100)
print(t, id(t[1]))
(10, [20, 30], 9) <class 'tuple'>
10 <class 'int'> 2341310628368
[20, 30] <class 'list'> 2341311953088
9 <class 'int'> 2341310628336
(10, [20, 30, 100], 9) 2341311953088
元组的遍历
- 元组是可迭代对象,所以可以使用for…in进行遍历
- 第一种获取元组的方式,使用索引。
t = ('python', 'world', 98)
print(t[0], t[1], t[2])
python world 98
第二种获取元组的方式,遍历元组。
for item in t:
print(item)
python
world
98
本文详细介绍了Python元组的基本概念,包括其不可变性质、创建方式、注意事项,以及为何设计为不可变的原因。通过实例演示元组的遍历和存储对象引用。重点讲解了元组在多任务环境中的优势和操作细节。
709

被折叠的 条评论
为什么被折叠?



