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

Python字典值迭代报错TypeError,求错误原因与正确实现方法

错误原因与正确迭代方案

错误原因

  • range()函数要求传入整数类型的参数(或起始/结束/步长的整数组合),你直接传入了列表dictList,Python无法将列表解析为整数来生成循环范围,因此触发TypeError: 'list' object cannot be interpreted as an integer错误。
  • 额外提醒:不要用dict作为变量名,它是Python内置的字典类型标识符,会覆盖内置对象,可能引发后续未知问题。

正确的字典迭代方式

你完全不需要把字典的values()转换成列表再遍历,Python支持直接迭代字典的视图对象,以下是两种可行方案:

方案1:直接遍历values()(推荐)

# 改用自定义变量名,避免覆盖内置类型
menu = {
    'eggs': 5,
    'chips': 4,
    'ham': 3
}

# 直接遍历字典的values视图
for count in menu.values():
    print(count)

方案2:通过索引遍历(不推荐,冗余操作)

如果坚持要用索引方式遍历,需要给range()传入列表的长度(整数):

menu = {
    'eggs': 5,
    'chips': 4,
    'ham': 3
}

menu_list = list(menu.values())
# 传入列表长度给range()
for i in range(len(menu_list)):
    print(menu_list[i])

总结

你当前的迭代逻辑不正确,核心问题是range()参数使用错误;同时没必要额外转换列表,直接迭代menu.values()是最简洁高效的方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 01:17:05