Python中如何遍历字典的键和值?

Python中如何遍历字典的键和值?
最新回答
辞慾

2026-10-17 12:19:16

在Python中,遍历字典的键和值可通过以下三种方法实现,具体选择取决于需求场景:

1. 遍历字典的键
  • 方法:直接迭代字典对象,默认遍历键。
  • 语法:my_dict = {'a': 1, 'b': 2, 'c': 3}for key in my_dict: print(key) # 输出:a, b, c
  • 适用场景:仅需访问键,无需值时。
  • 优点:代码简洁,性能高效(直接迭代字典对象)。
  • 缺点:若需同时访问值,需额外通过my_dict[key]获取,可能降低可读性。
2. 遍历字典的值
  • 方法:使用.values()方法显式获取值集合。
  • 语法:for value in my_dict.values(): print(value) # 输出:1, 2, 3
  • 适用场景:仅需处理值,不关心键时。
  • 优点:直接聚焦值,避免键的干扰。
  • 缺点:无法直接关联键,需额外步骤获取键(如通过list(my_dict.keys())[index],但效率低)。
3. 同时遍历键和值(推荐)
  • 方法:使用.items()方法返回键值对视图,解包为(key, value)元组。
  • 语法:for key, value in my_dict.items(): print(f'Key: {key}, Value: {value}')# 输出:# Key: a, Value: 1# Key: b, Value: 2# Key: c, Value: 3
  • 适用场景:需同时访问键和值时(如配置处理、数据转换)。
  • 优点:

    代码清晰:直接解包键值对,逻辑直观。

    性能高效:.items()在Python 3中返回视图对象,内存占用低(对比Python 2的.iteritems()已优化)。

    顺序保证:Python 3.7+中字典保持插入顺序,遍历结果可预测。

  • 最佳实践:

    使用有意义的变量名(如config_key, config_value)提升可读性。

    避免在循环中修改字典大小(如删除键),否则可能引发RuntimeError。

性能与版本注意事项
  • Python 3优化:.items()、.values()、.keys()均返回视图对象,迭代时动态生成元素,节省内存。
  • Python 2兼容性:若使用Python 2,需用.iteritems()、.itervalues()、.iterkeys()提升性能(但Python 2已终止支持,建议迁移至Python 3)。
  • 大字典处理:对于超大型字典,.items()仍高效,因视图对象无需存储全部数据。
实际应用示例

场景:根据配置字典的键执行不同操作。

config = { 'host': 'example.com', 'port': 8080, 'timeout': 30}for key, value in config.items(): if key == 'host': print(f'Connecting to {value}') elif key == 'port': print(f'Using port {value}') elif key == 'timeout': print(f'Setting timeout to {value} seconds')# 输出:# Connecting to example.com# Using port 8080# Setting timeout to 30 seconds总结
  • 仅需键:直接迭代字典(for key in my_dict)。
  • 仅需值:使用.values()(for value in my_dict.values())。
  • 需键值对:优先用.items()(for key, value in my_dict.items()),兼顾清晰性与性能。

根据具体需求选择方法,并注意Python版本特性以确保代码健壮性。