【问题标题】:"ValueError: need more than 2 values to unpack" while using enumerate()使用 enumerate() 时出现“ValueError:需要超过 2 个值才能解压”
【发布时间】:2019-01-19 13:18:50
【问题描述】:

我正在尝试使用 zip()enumerate() 遍历由数组对组成的数组的索引和相应元素,但出现以下错误:

a_1 = [1, 2, 3]
a_2 = [11, 22, 33]
a_3 = [111, 222, 333]


b_1 = [5, 6, 7]
b_2 = [55, 66, 77]
b_3 = [555, 666, 777]

for k in range(1, 10):
    for index, a, b in enumerate(zip([a_1, a_2, a_3],
    [b_1, b_2, b_3])):
        print index, a, b

但我收到关于第一行的以下错误:

ValueError: need more than 2 values to unpack

【问题讨论】:

    标签: python python-2.7 valueerror


    【解决方案1】:

    enumerate 返回双元组,但是因为您枚举了一个 zip(在您的情况下也返回双元组),所以原始双元组的第二个元素也是双元组。你必须先解包外部元组,然后是内部元组:

    for index, (a, b) in enumerate(zip([a_1, a_2, a_3],
        [b_1, b_2, b_3])):
    

    【讨论】:

      【解决方案2】:

      您的元组结构为(index, (a, b)),而不是(index, a, b)。你需要像那样解压它们。

      for index, (a, b) in ...
      

      【讨论】:

        猜你喜欢
        • 2020-07-09
        • 2011-05-29
        • 2015-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多