解压缩地图对象时解压缩错误

时间:2016-12-01 16:38:13

标签: python python-3.x iterable-unpacking

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

我很困惑。

1 个答案:

答案 0 :(得分:0)

这里要解压缩的结构是一个包含两个元素的元组,一个嵌套元组最终包含12作为映射结果和默认指令。

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

如果需要正确解压缩,请在赋值的目标处使用括号来指定生成的结构:

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

nmr的值正确。

如果您使用:

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

map结果(迭代器)永远不会被解压缩,只是被指定为n的值。