Python中的tuple元组详细介绍

  • Post category:Python

当你需要存储多个值时,可以使用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,然后将其拆开赋值给两个变量。