2016-12-01 27 views
0
n, m = map(int, [1, 2]) 

意志得到n == 1m == 2開箱錯誤拆包地圖對象

但當:

n, m, r = map(int, [1, 2]), defaultdict(list) 

將提高:

ValueError: not enough values to unpack (expected 3, got 2) 

這個時候,n<map object at ...>mdefaultdict

我很困惑。

回答

0

這裏要解壓縮的結構是具有兩個元件,一個嵌套元組最終含有12作爲映射結果和defaultdict的元組。

((1, 2), defaultdict(list)) 

如果您需要正確解壓,使用括號在賦值的目標來指定產生的結構:

(n, m), r = map(int, [1, 2]), defaultdict(list) 

nmr有他們正確的價值觀。

如果你使用:

n, m = map(int, [1, 2]), defaultdict(list) 

map結果(迭代器)將永遠不會得到解壓並簡單地得到分配爲n值。