使用 enumerate() 时"ValueError: need more than 2 values to unpack"



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

enumerate返回两个元组,但由于您枚举了一个 zip(在您的例子中也返回两个元组(,原始两个元组的第二个元素也是一个两个元组。您必须先解压缩外部元组,然后解压缩内部元组:

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

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

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

相关内容

最新更新