当你需要存储多个值时,可以使用tuple元组。tuple元组和list列表一样,可以存储多个值,但是和list不同的是,tuple一旦创建,就不能再进行修改,也不能添加或删除元素。因此,tuple是一种不可变的数据类型。
创建tuple元组
在Python中,tuple可以通过圆括号 () 来创建,如果元组中只有1个元素时,需要在元素后面加上逗号,否则解释器会把它当作普通的值。
#创建一个空的元组
tup1 = ()
#创建一个只包含一个元素的元组,需要在元素后面加上逗号
tup2 = (50,)
#创建包含多个元素的元组
tup3 = (60, 70, 80)
访问tuple元组
我们可以通过下标来访问tuple元组中的元素,下标从0开始,最大为元素个数减1。
tup = (90, 100, 110, 120)
print('tup[0]:', tup[0])
print('tup[1]:', tup[1])
print('tup[2]:', tup[2])
运行结果:
tup[0]: 90
tup[1]: 100
tup[2]: 110
tuple元组的特殊性质
在Python中,tuple元组和字符串一样,是一种不可变类型的数据。因此,元组中的元素值一旦定义后,就不能再进行修改。
#创建包含多个元素的元组
tup4 = ('apple', 'banana', 'watermelon')
# 修改元组元素的操作是非法的
# tup4[0] = 'orange'
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: 'tuple' object does not support item assignment
在Python中,tuple元组可以当作拆包使用,例如将元组里的元素赋值给多个变量。
tup5 = ('Jack', 25, 178)
name, age, height = tup5
print('name:', name)
print('age:', age)
print('height:', height)
运行结果:
name: Jack
age: 25
height: 178
当然,如果我们只需要元组中的其中一个元素,也可以通过 _
进行忽略。
tup6 = ('Sam', 'pengp', 90, 80, 70)
name, _, score1, score2, score3 = tup6
print('name:', name)
print('score1:', score1)
print('score2:', score2)
print('score3:', score3)
运行结果:
name: Sam
score1: 90
score2: 80
score3: 70
在函数的返回值中,我们经常会看到tuple的应用。例如下面的函数,以及它的调用:
def get_name_and_age():
return 'Jack', 25
name, age = get_name_and_age()
print('name:', name)
print('age:', age)
运行结果:
name: Jack
age: 25
在这个例子中,我们返回了一个包含两个元素的tuple,然后将其拆开赋值给两个变量。