在 Python 中交换字典中的键和值
Python 中交换字典中的键和值:
- 使用 dict.items() 方法获取字典项目的视图。
- 使用字典理解来迭代视图。
- 交换每个键和值并返回结果。
my_dict = {
'fql': 'first',
'zadmei': 'last',
'python': 'topic',
}
new_dict = {
value: key for key, value in my_dict.items()
}
print(new_dict)
dict.items 方法返回字典项((键,值)对)的新视图。
my_dict = {
'fql': 'first',
'zadmei': 'last',
'python': 'topic',
}
print(my_dict.items())
我们使用字典推导来迭代视图对象。
在每次迭代中,我们交换键和值并返回结果。
my_dict = {
'fql': 'first',
'zadmei': 'last',
'python': 'topic',
}
new_dict = {
value: key for key, value in my_dict.items()
}
# ?️ {'first': 'fql', 'last': 'zadmei', 'topic': 'python'}
print(new_dict)
或者,我们可以使用 dict() 函数。
使用 dict() 交换字典中的键和值
Python 中交换字典中的键和值:
- 使用 dict.items() 方法获取字典项目的视图。
- 使用生成器表达式迭代视图对象。
- 在对 dict() 函数的调用中交换每个键和值。
my_dict = {
'fql': 'first',
'zadmei': 'last',
'python': 'topic',
}
new_dict = dict(
(value, key) for key, value in my_dict.items()
)
# ?️ {'first': 'fql', 'last': 'zadmei', 'topic': 'python'}
print(new_dict)
我们使用 dict.items() 方法获取字典项的视图,并使用生成器表达式迭代视图对象。
在每次迭代中,我们返回一个包含值和键的元组。
使用 for 循环交换字典中的键和值
交换字典中的键和值:
- 使用 dict.items() 方法获取字典项目的视图。
- 使用 for 循环遍历视图对象。
- 交换每个键和值并将它们添加到新字典中。
my_dict = {
'fql': 'first',
'zadmei': 'last',
'python': 'topic',
}
new_dict = {}
for key, value in my_dict.items():
new_dict[value] = key
# ?️ {'first': 'fql', 'last': 'zadmei', 'topic': 'python'}
print(new_dict)
我们声明了一个存储空字典的新变量。
我们使用 for 循环来迭代原始字典的项目。
使用 zip() 交换字典中的键和值
交换字典中的键和值:
- 使用 dict.keys() 和 dict.values() 方法来查看字典的键和值。
- 使用 zip() 函数生成一个包含每个值和键的元组。
- 将元组传递给 dict() 函数。
my_dict = {
'fql': 'first',
'zadmei': 'last',
'python': 'topic',
}
new_dict = dict(
zip(my_dict.values(), my_dict.keys())
)
# ?️ {'first': 'fql', 'last': 'zadmei', 'topic': 'python'}
print(new_dict)
dict.values 方法返回字典值的新视图。
my_dict = {
'fql': 'first',
'zadmei': 'last',
'python': 'topic',
}
# ?️ dict_values(['first', 'last', 'topic'])
print(my_dict.values())
# ?️ dict_keys(['fql', 'zadmei', 'python'])
print(my_dict.keys())
dict.keys() 方法返回字典键的新视图。
my_dict = {
'fql': 'first',
'zadmei': 'last',
'python': 'topic',
}
# ?️ [('first', 'fql'), ('last', 'jiyyik'), ('topic', 'python')]
print(list(zip(
my_dict.values(),
my_dict.keys()
)))
最后一步是将元组迭代器传递给 dict() 类。
my_dict = {
'fql': 'first',
'zadmei': 'last',
'python': 'topic',
}
new_dict = dict(
zip(my_dict.values(), my_dict.keys())
)
# ?️ {'first': 'fql', 'last': 'zadmei', 'topic': 'python'}
print(new_dict)
选择哪种方法是个人喜好的问题。 我会使用字典推导,因为我发现它们非常直接且易于阅读。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。