我用 Python 中的 for-loop 编写了一个代码,但我无法正确执行。 因此,Python 从我这里收到了两个列表。一个名为 colors 并包含彩虹的七种颜色,而另一个名为 crayons_count 并包含七个数字,代表每种颜色有多少蜡笔。
问题是,我在代码中使用了 2 个 for 循环。在第二个中,我得到一个 NameError。我已经研究这个问题好几天了。
所以,这是我的代码:
colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']
crayons_count = [10, 5, 7, 8, 9, 2, 3]
for index, color in enumerate(colors):
print(index, color)
for (color) in colors and (number) in crayons_count:
print (color, number)
我期待得到这样的东西:
0 red
1 orange
2 yellow
3 green
4 blue
5 indigo
6 violet
red 10
orange 5
yellow 7
green 8
blue 9
indigo 2
violet 3
现在,我得到了第一个循环的结果,但是从第二个循环中得到了这个错误:
您的代码的问题是您试图使用单个 for 循环一次迭代两个列表。这在 Python 中是不可能的。
相反,您可以使用
zip()
函数同时迭代两个列表。 zip()
函数将两个或多个序列作为输入并返回一个迭代器,该迭代器聚合每个序列中的元素。
colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']
crayons_count = [10, 5, 7, 8, 9, 2, 3]
for index, color in enumerate(colors):
print(index, color)
for color, number in zip(colors, crayons_count):
print(color, number)