【发布时间】: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