“NameError: name 'number' is not defined” - 使用列表

问题描述 投票:0回答:1

我用 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

现在,我得到了第一个循环的结果,但是从第二个循环中得到了这个错误:

This is an image with the error

python python-3.x list for-loop nameerror
1个回答
1
投票

您的代码的问题是您试图使用单个 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)
© www.soinside.com 2019 - 2024. All rights reserved.