weixin_44617800 2023-04-10 16:29 采纳率: 66.7%
浏览 18
已结题

关于#python#的问题,请各位专家解答!

python,字典嵌套字典的情况,如何根据value获取对应的key?
比如这个例子:
d = {'a':{'name':'zhangsan','age':20},'b':{'name':'lisi','age':38}}

如果给出了38,想要获取结果“b”,应该怎么做呢?

  • 写回答

4条回答 默认 最新

  • 语言-逆行者 2023-04-10 16:42
    关注

    可以通过遍历字典嵌套字典的方式,逐层查找对应的key和value。具体实现代码如下:

    def get_key(d, value):
        for k, v in d.items():
            if isinstance(v, dict):
                res = get_key(v, value)
                if res:
                    return k + '.' + res
            elif v == value:
                return k
        return ''
    
    d = {'a':{'name':'zhangsan','age':20},'b':{'name':'lisi','age':38}}
    print(get_key(d, 38))  # 输出b.age
    
    
    

    其中,isinstance(v, dict)用于判断当前value是否为字典,如果是,则递归调用get_key函数;否则,判断当前value是否等于目标value,如果是,则返回对应的key。如果遍历完整个字典,仍未找到对应的key,则返回空字符串。需要注意的是,由于字典嵌套字典,因此在返回key时,需要将每一层的key用.连接起来。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月18日
  • 已采纳回答 4月10日
  • 创建了问题 4月10日

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b