"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])):
我正在尝试使用 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])):