咱們有一個包含N個元素的元組或序列,如今想把它分解爲N個單獨的變量。python
例如咱們有一個序列[1, 2, 3],想把1, 2, 3分別賦值給a, b, c三個變量。微信
只須要簡單的賦值就能夠了,惟一的要求是變量的數量和序列的數量必需要一致spa
例如:code
>>> l = ['foo', 5, 'bar'] >>> a, b, c = l >>> print(a, b, c) foo 5 bar >>> t = (1, 2, 3) >>> a, b, c = t >>> print(a, b, c) 1 2 3
但若是變量的整數和序列的數量不一致時,則會拋出ValueError
異常對象
>>> l = [1, 2, 3] >>> a, b = l Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: too many values to unpack (expected 2)
實際上,任何可迭代的對象(元組、序列、集合、迭代器等等)均可以這樣來分解rem
def foo(): for i in range(3): yield i a, b, c = foo() print(a, b, c)
《Python Cookbook》it
歡迎關注咱們的微信公衆號:practice_for_pythonast
想要投稿的朋友能夠給咱們的公衆號留言,備註好【問題】【解決方案】【討論】【來源】便可class