"ValueError: need more than 2 values to unpack" while using enumerate()

"ValueError: need more than 2 values to unpack" while using enumerate()

我正在尝试使用 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

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

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

enumerate returns 双元组,但是因为你枚举了一个 zip(在你的例子中也是 returns 双元组),原始双元组的第二个元素也是二元组。您必须先解压外部元组,然后解压内部元组:

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