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 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了