【问题标题】:Unpacking error when unpacking map object解包地图对象时解包错误
【发布时间】:2017-04-16 09:37:52
【问题描述】:
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

我很困惑。

【问题讨论】:

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


    【解决方案1】:

    这里要解包的结构是一个有两个元素的元组,一个嵌套的元组最终包含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 的值。

    【讨论】:

      猜你喜欢
      • 2010-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 1970-01-01
      • 2020-03-21
      • 1970-01-01
      相关资源
      最近更新 更多