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

Python入门之字典与列表:两段对比代码其中一段无法运行问题咨询

Python代码故障原因说明

核心错误点

第二段代码无法运行的原因是字典访问逻辑错误:

  • 第一段代码通过字典的键"preis"获取车辆价格,符合Python字典的访问规则,可正常运行。
  • 第二段代码误用了序列的数字索引[3]访问字典元素:listefahrzeuge[0]是字典类型,Python的字典是键值对结构,不支持通过数字下标直接获取对应位置的值,运行时会抛出KeyError: 3报错。

修正方案

方案1:沿用字典键访问(推荐)

直接使用键名"preis"获取价格,可读性高且不易出错,修改后代码片段如下:

if listefahrzeuge[0]["preis"] <= max:
    print(fahrzeug1, "\n")
if listefahrzeuge[1]["preis"] <= max:
    print(fahrzeug2, "\n")
if listefahrzeuge[2]["preis"] <= max:
    print(fahrezeug3, "\n")

方案2:转换为值列表后按索引访问

如果确实需要按位置取值,可以先将字典的所有值转为列表再用数字索引访问:

if list(listefahrzeuge[0].values())[3] <= max:
    print(fahrzeug1, "\n")
# 其余判断逻辑同理修改

额外优化建议

  • 不要用max作为变量名:max是Python内置的求最大值函数,覆盖后会影响后续内置函数的使用,建议改为max_preis这类自定义名称。
  • 不要用eval()处理用户输入:直接用int(input("Geben sie bitte ihren höchst Preis an: "))即可,eval会执行用户输入的任意代码,存在安全风险。
  • 统一字典键名:当前fahrzeug1的年份键为大写开头的Baujahr,其余两个车辆的年份键为小写的baujahr,后续如果要统一访问年份字段会触发报错,建议统一键名格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:27:01