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

Python字典键值反转疑问:为何实际结果与预期不符?

字典键值反转的疑问解答

现有代码的逻辑

你写的这段代码,本质是实现字典键值的完全互换:

a_dict = {'one': 1, 'two': 2, 'three': 3, 'four': 4}
new_dict = {}
for key, value in a_dict.items():
    new_dict[value] = key  # 把原字典的「值」作为新字典的「键」,原字典的「键」作为新字典的「值」

print(new_dict)
# 输出: {1: 'one', 2: 'two', 3: 'three', 4: 'four'}

比如原字典里的'one':1,代码执行时会把1作为新字典的键,'one'作为对应的值,所以最终新字典的键是原字典的数值型值,这就是你看到键发生变化的原因。

你预期结果的实现方式

你想要的{'one': 'one', 'two': 'two', ...}并不是键值反转,而是让新字典的键和值都等于原字典的键。可以用两种方式实现:

方式一:字典推导式(更简洁)

a_dict = {'one': 1, 'two': 2, 'three': 3, 'four': 4}
new_dict = {key: key for key in a_dict}
print(new_dict)
# 输出: {'one': 'one', 'two': 'two', 'three': 'three', 'four': 'four'}

方式二:遍历items修改

a_dict = {'one': 1, 'two': 2, 'three': 3, 'four': 4}
new_dict = {}
for key, value in a_dict.items():
    new_dict[key] = key  # 键和值都设为原字典的键

print(new_dict)

内容的提问来源于stack exchange,提问作者Amanuel Yohannes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 14:07:08