包裝和拆包元組
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