【问题标题】:How to find an element (dict) of a nested dict in Python如何在 Python 中查找嵌套字典的元素(字典)
【发布时间】:2017-06-29 09:58:32
【问题描述】:

我想在我的嵌套字典中找到一个元素。我想要的元素也是一个字典。我试试这个使用递归的函数:

def find(key, dictionary):
    for k, v in dictionary.items():
        if k == key:
            yield v
        elif isinstance(v, dict):
            for result in find(key, v):
                yield result

这是我的字典:

nest_dict = {"a":{"b":{"c":{the dict i want} } } }

我循环通过我的生成器:

for my_element in find('c', nest_dict):
    print(my_element)

问题是当我打印 my_element 时,它包含 nest_dict 的所有内容在 1 个元素的字典中,而不仅仅是它的每个元素。 p>

谢谢。

PS : 对不起我的英语

【问题讨论】:

  • 这甚至不是一个有效的 dict 语法。
  • 忽略示例字典和代码的错误语法,获取所需嵌套字典的最简单方法是对其应用 get 3 次。在您的简单情况下,假设您希望将字典关联到键“c”,您需要做的就是nested_dict.get('a').get('b').get('c')
  • 输出对我来说是正确的。你能告诉我们你得到的输出和你期望得到的输出吗?

标签: python dictionary generator


【解决方案1】:

首先正如@Ashwini Chaudhary 和@BoboDarph 所提到的,您的字典语法对于执行您要求的操作无效,您可以执行以下操作:

nest_dict = {"a":{"b":{"c":'the dict i want' } } }

print nest_dict['a']['b']['c'] 

输出:

the dict i want

【讨论】:

    猜你喜欢
    • 2018-11-22
    • 1970-01-01
    • 2018-05-31
    • 2021-09-27
    • 2022-07-05
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 2021-12-29
    相关资源
    最近更新 更多