包裝和拆包元組

Python 中的元組是用逗號分隔的值。用於輸入元組的括號是可選的,因此兩個賦值

a = 1, 2, 3   # a is the tuple (1, 2, 3)

a = (1, 2, 3) # a is the tuple (1, 2, 3)

是等價的。賦值 a = 1, 2, 3 也稱為*打包,*因為它將值組合在一個元組中。

請注意,單值元組也是元組。要告訴 Python 變數是元組而不是單個值,你可以使用尾隨逗號

a = 1  # a is the value 1
a = 1, # a is the tuple (1,)

如果使用括號,還需要逗號

a = (1,) # a is the tuple (1,)
a = (1)  # a is the value 1 and not a tuple

要從元組中解壓縮值並執行多個賦值,請使用

# unpacking AKA multiple assignment
x, y, z = (1, 2, 3) 
# x == 1
# y == 2
# z == 3

符號 _ 可以用作一次性變數名,如果只需要元組的一些元素,充當佔位符:

a = 1, 2, 3, 4
_, x, y, _ = a
# x == 2
# y == 3

單元素元組:

x, = 1,  # x is the value 1
x  = 1,  # x is the tuple (1,)

在 Python 3 中,帶有*字首的目標變數可以用作 catch-all 變數(請參閱解包 Iterables ):

Python 3.x >= 3.0

first, *more, last = (1, 2, 3, 4, 5)
# first == 1
# more == [2, 3, 4]
# last == 5