【发布时间】:2013-11-11 09:00:03
【问题描述】:
从如下所示的字典中创建家谱的最快方法是什么:
family = [
{'name': 'a', 'parent': ''},
{'name': 'b', 'parent': 'a'},
{'name': 'c', 'parent': 'a'},
{'name': 'd', 'parent': 'b'},
{'name': 'e', 'parent': 'd'},
{'name': 'f', 'parent': ''},
{'name': 'g', 'parent': 'f'},
{'name': 'h', 'parent': 'a'}
]
最终,我正在尝试将其打印出来(带有大量额外信息,但这是一般的想法),如下所示的列表:
a
b
d
e
c
h
f
g
解决方案是创建一个函数来循环列表直到它为空,在它找到父项的每个项目上使用 .pop() 吗?还是在python中有更好的方法?
这是一个更大问题的一部分,但是,我正在努力寻找解决这个小部分的最佳方法。因此,即使是 lambda 的噩梦也可能是可能的。请尝试以易于扩展的简洁方式回答:)
【问题讨论】:
-
-1。好的,所以您没有尝试任何方法,只是希望我们为您编写代码。本网站用于学习,而非将工作外包给志愿者。
-
我尝试使用 while 循环和 pop() 在每个项目上执行此操作,同时我试图找到它的位置。然后将该项目放入更大的字典中以跟踪树。但是,感觉这不是最好的解决方案,因为我必须多次查看列表。我没有任何代码,因为我没有完成它,主要是因为我想问是否有更好的,甚至是内置的方式来做到这一点。
-
父母可以拥有多少孩子,这棵树的深度也没有限制。
标签: python family-tree