list_of_tuples = [(number, name, id, parent_id),
(number, name, id, parent_id),
]
我試圖把它整理成像一個有序的結構元組的列表:
{
parent: [(id, name), (id, name)],
parent: {parent: [(id, name)]
{
因此,任何節點可以有一個父和/或兒童 我試着搭配:
tree = defaultdict(lambda: [None,()])
ancestors = set([item[3] for item in list_of_tuples])
for items in list_of_tuples:
children_root = {}
descendants = []
number, name, id, parent = items
if parent is None:
tree[id] = [(id, name)]
elif parent:
if parent not in tree.keys():
node = tree.get(parent)
node.append((id, name))
children = (id, name)
tree[parent].append(children)
但我失去了深層次,當一個節點既有父母和子女
如何使訂購工作正確?
如果排序'parent_id'節點和葉節點啓動源節點,這可能只是問題 –
爲什麼不乾脆讓與主要= ID的字典。 – stark
你所瞄準的結構有點不同尋常。通常,樹節點具有關於孩子而不是父母的信息。還有什麼信息與特定節點相關(因爲它將在樹/ _dict_中)? _ID_? _名稱_?但不是_號碼? – CristiFati