Python每日一練0001

問題

咱們有一個包含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

相關文章
相關標籤/搜索