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

Python 3查找偶数时遇list[i]错误,列表查询失败求助

帮你搞定Python查找偶数的问题

嘿,我来帮你捋捋这段代码里的问题,以及怎么修正它~

问题出在哪?

你这段代码有两个关键问题,导致没法正常查找偶数:

  • 搞错数据类型+误用内置变量名:你写了list = {},但{}在Python里是字典,不是列表!而且list是Python自带的列表类型,用它当变量名会把内置的列表功能覆盖掉,以后想正常用列表都麻烦。
  • 键不存在引发错误:你的while循环往字典里塞的键是1到10,但后面的for x in range(10)会让x从0跑到9,当x=0的时候,字典里根本没有这个键,程序直接报错崩溃,自然没法继续找偶数。

修正后的代码(两种方案)

方案1:用列表实现(更符合你一开始想用list[i]的需求)

既然你本来想操作列表,那咱们就老老实实定义列表,而且换个变量名,别用list:

# 定义空列表,用num_list当变量名,避免覆盖内置list
num_list = []
x = 1
while x <= 10:
    num_list.append(x)  # 把x加到列表里
    x += 1

# 遍历列表找偶数
for num in num_list:
    if num % 2 == 0:
        print(num)

嫌while循环麻烦?直接用range生成列表更简洁:

num_list = list(range(1, 11))  # 直接生成1到10的列表
for num in num_list:
    if num % 2 == 0:
        print(num)

方案2:如果非要用字典(其实没必要,不过也能改)

要是你就想试试用字典实现,那得保证遍历的键是字典里有的:

# 用num_dict当变量名,别碰内置的dict
num_dict = {}
x = 1
while x <= 10:
    num_dict[x] = x
    x += 1

# 遍历字典里的所有值找偶数
for num in num_dict.values():
    if num % 2 == 0:
        print(num)

小提醒

以后别用Python的内置类型名(比如list、dict、str这些)当变量名,不然会把自带的功能搞坏,出问题很难查。另外,生成简单的数字序列时,用range()比while循环方便多啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:46:36