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

Python中使用dict.items()和list(dict.items())遍历字典有什么区别?

两种写法的核心差异

  • 直接遍历states.items():遍历的是字典的动态视图对象,和原字典实时关联。如果遍历过程中修改原字典的结构(增/删键),Python会直接抛出RuntimeError: dictionary changed size during iteration错误终止运行。
  • 遍历list(states.items()):会先把当前字典所有键值对一次性导出生成一个独立的静态列表,后续遍历的是这个列表,和原字典不再关联。遍历过程中修改原字典的结构不会影响当前遍历的进度和内容,也不会报错。

如果你的遍历逻辑完全不会修改原字典的结构,两种写法的运行结果没有区别,但直接遍历states.items()不需要额外生成列表,内存占用更低,字典数据量越大优势越明显。

举个对比示例:

states = {'Oregon': 'OR', 'Florida': 'FL'}

# 直接遍历items()视图,中途修改字典会报错
for key, val in states.items():
    print(key, val)
    states['Texas'] = 'TX' # 这行触发运行时错误

# 先转列表再遍历,中途修改字典无影响
states = {'Oregon': 'OR', 'Florida': 'FL'}
for key, val in list(states.items()):
    print(key, val)
    states['Texas'] = 'TX' # 不会报错,本次遍历也不会打印Texas

内容的提问来源于stack exchange,提问作者four-eyes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:15:00