Python 元组

基本操作

与列表相似,元组 tuple 也是个有序序列,但是元组是不可变的,用 () 生成。

t = (10, 11, 12, 13, 14)
t
(10, 11, 12, 13, 14)

可以索引,切片:

t[0]
10
t[1:3]
(11, 12)

生成元组

由于 () 在表达式中被应用,只含有单个元素的元组容易和表达式混淆,所以采用下列方式定义只有一个元素的元组:

a = (10,)
a, type(a)
((10,), tuple)
a = (10)
a, type(a)
(10, int)

将列表转换为元组:

a = [10, 11, 12, 13, 14]
tuple(a)
(10, 11, 12, 13, 14)

元组方法

由于元组是不可变的,所以只能有一些不可变的方法,例如计算元素个数 count 和元素位置 index,用法与列表一样。

a.count(10)
1
a.index(12)
2

元组与逗号表达式

Python中有将多个变量用逗号 , 隔开的语法,表示多组变量的赋值或返回。而如果将整个逗号表达式看作一个整体,它相当于一个元组类型的变量。例如有下列函数定义:

def foo(l:list):
    """return min & max of a list"""
    return min(l), max(l)

使用下面的方法来调用此函数:

l = list(range(10))
l_min, l_max = foo(l)

print('l_min =', l_min)
print('l_max =', l_max)
l_min = 0
l_max = 9

如果只使用一个变量接收 foo 函数的返回值:

ans = foo(l)
ans  # tuple
(0, 9)

如果只需要最大值而不需要最小值,可以使用占位符 _

_, l_max = foo(l)
l_max
9
Previous
Next