使用'for'循环遍历字典

使用’for’循环遍历字典

技术背景

在Python编程中,字典(dict)是一种非常常用的数据结构,它以键值对的形式存储数据。在实际开发中,我们经常需要遍历字典来获取其中的键、值或键值对。Python提供了多种方式来实现字典的遍历,理解这些方法对于高效处理字典数据至关重要。

实现步骤

遍历字典的键

在Python中,直接使用for循环遍历字典时,默认遍历的是字典的键。示例代码如下:

1
2
3
d = {'x': 1, 'y': 2, 'z': 3}
for key in d:
print(key, 'corresponds to', d[key])

遍历字典的键值对

  • Python 3.x:使用items()方法可以同时遍历字典的键和值。
1
2
3
d = {'x': 1, 'y': 2, 'z': 3}
for key, value in d.items():
print(key, 'corresponds to', value)
  • Python 2.x:使用iteritems()方法来实现相同的功能。
1
2
3
d = {'x': 1, 'y': 2, 'z': 3}
for key, value in d.iteritems():
print(key, 'corresponds to', value)

遍历字典的值

可以使用values()方法来遍历字典的值。

1
2
3
d = {'x': 1, 'y': 2, 'z': 3}
for value in d.values():
print(value)

核心代码

遍历键值对并打印

1
2
3
d = {'x': 1, 'y': 2, 'z': 3}
for key, value in d.items():
print(f'{key} corresponds to {value}')

按值排序并遍历

1
2
3
4
5
6
d = {'x': 3, 'y': 1, 'z': 2}
def by_value(item):
return item[1]

for key, value in sorted(d.items(), key=by_value):
print(key, '->', value)

在遍历中修改字典

1
2
3
my_dict = {'a': 1, 'b': 2, 'c': 3}
for k in list(my_dict):
my_dict.pop(k)

最佳实践

  • 使用描述性变量名:在循环中使用更具描述性的变量名,使代码更易读。例如:
1
2
3
d = {'x': 1, 'y': 2, 'z': 3}
for letter, number in d.items():
print(letter, 'corresponds to', number)
  • 使用格式化字符串:使用format()方法或f-string来格式化输出,使代码更简洁。例如:
1
2
3
d = {'x': 1, 'y': 2, 'z': 3}
for letter, number in d.items():
print(f'{letter} corresponds to {number}')
  • 避免在遍历中修改字典:如果需要在遍历中修改字典,建议先复制一份键的列表,避免出现RuntimeError

常见问题

修改字典时出现RuntimeError

在Python 3中,直接在for循环中修改字典会引发RuntimeError。因为my_dict.keys()返回的是字典键的视图,修改字典会影响视图。解决方法是先复制一份键的列表。

1
2
3
4
5
my_dict = {'a': 1, 'b': 2, 'c': 3}
for k in my_dict:
my_dict.pop(k) # 会报错
for k in list(my_dict):
my_dict.pop(k) # 正常运行

变量名的误解

key只是一个普通的变量名,不是Python的特殊关键字。可以使用其他变量名来代替。例如:

1
2
3
d = {'x': 1, 'y': 2, 'z': 3}
for each_key in d:
print(each_key, '->', d[each_key])

使用'for'循环遍历字典
https://119291.xyz/posts/2025-05-09.iterating-over-dictionaries-using-for-loops/
作者
ww
发布于
2025年5月9日
许可协议