原文: https://www.freecodecamp.org/news/dictionary-iteration-in-python/
在 Python 中,字典是内置的数据结构之一 (其他的是元组、列表和集合)。字典是一个键:值对的集合,你可以用它们来解决各种编程问题。
字典非常灵活。你可以分别获得键和值,甚至可以一起获得。
这篇文章是关于用 for
循环遍历字典,但你也可以用三个方法遍历字典:
key()
方法:得到字典中的键values()
方法:得到字典中的值items()
方法:获得字典中的键和值
在下面的例子中,我用这 3 个方法来获得字典中的键、值和项。
states_tz_dict = {
'Florida': 'EST and CST',
'Hawaii': 'HST',
'Arizona': 'DST',
'Colorado': 'MST',
'Idaho': 'MST and PST',
'Texas': 'CST and MST',
'Washington': 'PST',
'Wisconsin': 'CST'
}
# 键
states_keys = states_tz_dict.keys()
print(states_keys) # dict_keys(['Florida', 'Hawaii', 'Arizona', 'Colorado', 'Idaho', 'Texas', 'Washington', 'Wisconsin'])
# 值
tz_values = states_tz_dict.values()
print(tz_values) # dict_values(['EST and CST', 'HST', 'DST', 'MST', 'MST and PST', 'CST and MST', 'PST', 'CST'])
# 键和值
states_tz_dict_items = states_tz_dict.items()
print(states_tz_dict_items) # dict_items([('Florida', 'EST and CST'), ('Hawaii', 'HST'), ('Arizona', 'DST'), ('Colorado', 'MST'), ('Idaho', 'MST and PST'), ('Texas', 'CST and MST'), ('Washington', 'PST'), ('Wisconsin', 'CST')])
这就是我们做的一些迭代。但是你也可以用 for
循环来遍历一个字典。这就是我们在本教程中要研究的内容。
我们将讨论的内容
- 如何用
for
循环遍历一个字典 - 如何用
for
循环遍历字典的键 - 如何用
for
循环遍历字典的值 - 如何用
for
循环遍历字典中的项目 - 如何在字典中进行循环并将其转换为一个元组列表
- 小结
如何用 for 循环来迭代一个字典
使用 Python for
循环,你可以遍历字典的键、值或项。你也可以在字典中循环,把 key:value 对放在一个元组的列表中。我们将一个一个地看。
如何用 for 循环遍历字典的键值
还记得我在本文的第一部分是如何用 keys()
方法得到字典的键吗?你可以在 for
循环中使用同样的方法,并将每个键分配给一个变量,我们可以称之为 k
:
states_tz_dict = {
'Florida': 'EST and CST',
'Hawaii': 'HST',
'Arizona': 'DST',
'Colorado': 'MST',
'Idaho': 'MST and PST',
'Texas': 'CST and MST',
'Washington': 'PST',
'Wisconsin': 'CST'
}
for k in states_tz_dict.keys():
print(k)
# Result:
# Florida
# Hawaii
# Arizona
# Colorado
# Idaho
# Texas
# Washington
# Wisconsin
如何用 for 循环遍历字典的值
你也可以在 for
循环中使用 values()
方法,并将值赋给一个变量,你可以称之为 v
:
states_tz_dict = {
'Florida': 'EST and CST',
'Hawaii': 'HST',
'Arizona': 'DST',
'Colorado': 'MST',
'Idaho': 'MST and PST',
'Texas': 'CST and MST',
'Washington': 'PST',
'Wisconsin': 'CST'
}
for v in states_tz_dict.values():
print(v)
# Result:
# EST and CST
# HST
# DST
# MST
# MST and PST
# CST and MST
# PST
# CST
如何用 for 循环遍历字典项目
items()
方法在获取 for
循环中的键和值时很方便。这一次,你必须分配两个变量而不是一个:
states_tz_dict = {
'Florida': 'EST and CST',
'Hawaii': 'HST',
'Arizona': 'DST',
'Colorado': 'MST',
'Idaho': 'MST and PST',
'Texas': 'CST and MST',
'Washington': 'PST',
'Wisconsin': 'CST'
}
for k, v in states_tz_dict.items():
print(k,"--->", v)
# Result:
# Florida ---> EST and CST
# Hawaii ---> HST
# Arizona ---> DST
# Colorado ---> MST
# Idaho ---> MST and PST
# Texas ---> CST and MST
# Washington ---> PST
# Wisconsin ---> CST
注意:你可以在 for
循环中使用任何字母作为变量。不一定非得是 k 或 v,或 k、v。
如何在一个字典中循环并将其转换为一个元组的列表
要在 Python 中把一个字典转换成一个元组的列表,你仍然必须在 for
循环中使用 items()
方法。
但是这一次,你必须用方括号包围这个循环。你还必须把这个循环分配给一个单独的变量,并把这个变量的键和值都用括号包起来:
states_tz_dict = {
'Florida': 'EST and CST',
'Hawaii': 'HST',
'Arizona': 'DST',
'Colorado': 'MST',
'Idaho': 'MST and PST',
'Texas': 'CST and MST',
'Washington': 'PST',
'Wisconsin': 'CST'
}
list_of_tuples = [(k, v) for k, v in states_tz_dict.items()]
print(list_of_tuples)
# Result: [('Florida', 'EST and CST'), ('Hawaii', 'HST'), ('Arizona', 'DST'), ('Colorado', 'MST'), ('Idaho', 'MST and PST'), ('Texas', 'CST
# and MST'), ('Washington', 'PST'), ('Wisconsin', 'CST')]
小结
在本教程中,我们研究了如何用 for
循环来迭代一个字典。
如果你不想使用 for
循环,你也可以像本文第一部分那样直接使用 keys()
、values()
或 items()
方法。
如果你觉得这篇文章有帮助,请在社交媒体上分享它。