我正在尝试使用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
答案 0 :(得分:1)
enumerate
返回两元组,但是由于您枚举了一个zip(在您的情况下,它也返回了两元组),因此原始两元组的第二个元素也是两元组。您必须先打开外部元组,然后再打开内部元组:
for index, (a, b) in enumerate(zip([a_1, a_2, a_3],
[b_1, b_2, b_3])):
答案 1 :(得分:0)
您的元组的结构为(index, (a, b))
,而不是(index, a, b)
。您需要这样打开它们的包装。
for index, (a, b) in ...