[英]Unpacking error when unpacking map object
n, m = map(int, [1, 2])
將得到n == 1
, m == 2
但:
n, m, r = map(int, [1, 2]), defaultdict(list)
將提高:
ValueError: not enough values to unpack (expected 3, got 2)
這次, n
是<map object at ...>
, m
是defaultdict
我很困惑。
這里要解包的結構是一個有兩個元素的元組,一個嵌套元組最終包含1
和2
作為映射結果以及defaultdict。
((1, 2), defaultdict(list))
如果需要正確解壓縮,請在分配目標處使用括號來指定生成的結構:
(n, m), r = map(int, [1, 2]), defaultdict(list)
其中n
, m
和r
具有正確的值。
如果您使用:
n, m = map(int, [1, 2]), defaultdict(list)
map
結果(迭代器)將永遠不會解包,而只會被分配為n
的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.