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
我很困惑。
答案 0 :(得分:0)
这里要解压缩的结构是一个包含两个元素的元组,一个嵌套元组最终包含1
和2
作为映射结果和默认指令。
((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
的值。