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

如何将字典中值为其他键名的键替换为对应键的值?

解决字典中值替换为对应键值的问题

先说说你写的代码存在的问题:

  • 条件if dict1[x] == dict1[x]完全多余,这个判断永远成立,根本没起到检查“值是否是另一个键”的作用
  • 没有先判断y是不是字典里的键,直接调用dict1[y]如果遇到非键的值会直接抛出KeyError
  • 遍历字典items()时直接修改原字典,虽然Python3.7+支持这种操作,但你的核心逻辑本身就不对

下面给你两种可行的实现方式:

方法一:直接修改原字典

dict1 = {"a": 100, "b": 200, "c": "a"}

# 转成list避免遍历过程中字典结构变化可能引发的问题
for key, value in list(dict1.items()):
    # 检查当前值是否是字典中的某个键
    if value in dict1:
        dict1[key] = dict1[value]

print(dict1)  # 输出: {'a': 100, 'b': 200, 'c': 100}

方法二:生成新字典(不改动原字典)

如果不想修改原字典,可以用字典推导式生成一个新字典:

dict1 = {"a": 100, "b": 200, "c": "a"}
new_dict = {k: dict1[v] if v in dict1 else v for k, v in dict1.items()}

print(new_dict)  # 输出: {'a': 100, 'b': 200, 'c': 100}

这两种方式都能实现你要的效果:把值为其他键名的条目,替换成对应键的实际值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 00:24:31