You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python双列表遍历触发NameError: name 'number' is not defined求助

解决Python遍历对应列表时的NameError问题

你的第二个for循环语法完全错误,Python不支持for (color) in colors and (number) in crayons_count这种写法,这就是触发NameError的核心原因——number还未定义就被放到了循环逻辑里,而且and在这里会把两个非空列表转换成布尔值True,最终循环实际是在遍历True,完全达不到配对遍历两个列表的目的。

要实现颜色和对应蜡笔数量的配对输出,直接用Python内置的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)

# 用zip配对两个列表的对应元素
for color, number in zip(colors, 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

额外说明:如果后续遇到两个列表长度不一致的情况,zip()会以较短的列表为准停止遍历;要是需要保留所有元素,可以使用itertools.zip_longest(),不过你的场景里两个列表长度相同,用zip()就足够了。

内容的提问来源于stack exchange,提问作者lanteam ana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:52:36