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

如何使字典值唯一并保留每个值对应的最新键值对

解决字典值去重并保留最后出现键值对的问题

要实现字典值去重且保留每个值对应的最后一组键值对,核心思路是利用遍历过程中覆盖重复值对应的键,具体步骤如下:

方法实现(Python 3.7+)

Python 3.7及以上的字典默认保持插入顺序,直接遍历原字典即可实现需求:

original_dict = {"A":1, "B":1, "C":1, "D":2, "E":2, "F":3}

# 用临时字典记录每个值对应的最后一个键
temp_map = {}
for key, val in original_dict.items():
    temp_map[val] = key  # 重复值会被后续的键覆盖,自动保留最后出现的键

# 反转临时字典的键值对,得到目标结果
result_dict = {v: k for k, v in temp_map.items()}
print(result_dict)
# 输出: {'C': 1, 'E': 2, 'F': 3}

为什么反向查找的方法不生效?

你之前尝试的“获取唯一值再反向查找键”的思路,通常会拿到该值第一次出现的键,而不是最后一次。因为反向查找时,字典的键具有唯一性,只会返回第一个匹配的结果。而上面的方法通过遍历过程中不断更新值对应的键,天然就能保留最后一次出现的键值对。

兼容Python 3.6及以下版本

如果需要兼容更早的Python版本(字典无序),可以使用collections.OrderedDict来保证遍历顺序:

from collections import OrderedDict

original_dict = OrderedDict({"A":1, "B":1, "C":1, "D":2, "E":2, "F":3})
temp_map = {}
for key, val in original_dict.items():
    temp_map[val] = key
result_dict = {v: k for k, v in temp_map.items()}

内容的提问来源于stack exchange,提问作者Uno Guerta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 01:37:11