我問你的意見 我有一個NodeTree類。 然後我有一個函數create_T(d) 這個函數以輸入字典d代表一棵樹,並創建一個節點類型爲NodeTree的樹 你建議我做什麼? 感謝所有Python - Dictionary to NodeTree
1
A
回答
0
您的信息很少,所以我做了一些假設。基本上我認爲你需要知道從哪裏開始。如果你選擇一個隨機點,那麼你必須向上和向下工作。如果你能確定哪一個是樹的頂部,那麼你只需要向下工作。我通過進行集合比較來計算樹的頂部,以查看哪個節點不是任何其他節點的子節點。
import itertools
# NodeTree
class Node(object):
def __init__(self, name):
self.name = name
self.children = []
def add_child(self, child_node):
self.children.append(child_node)
def __repr__(self):
if not self.children:
return '<%s/>' % self.name
else:
children = ''.join([repr(child) for child in self.children])
return '<%s>%s</%s>' % (self.name, children, self.name)
# create_T(d)
def create_tree(tree_dict):
# find which node is the top of the tree (assume it is well-formed)
all_leaves = set(itertools.chain(*tree_dict.values()))
top_of_the_tree = set(tree_dict.keys()) - all_leaves
def get_node(name):
node = Node(name)
for child_name in tree_dict[name]:
node.add_child(get_node(child_name))
return node
return get_node(top_of_the_tree.pop())
print create_tree({'a': ['b', 'c'],
'b': ['d'],
'c': ['e'],
'd': [],
'e': [],
'f': ['a']})
,並提供:
<f><a><b><d/></b><c><e/></c></a></f>
相關問題
- 1. Dictionary to CSV - Python
- 2. Python AST to dictionary structure
- 3. python append dictionary to list
- 4. Dictionary to CSV
- 5. json text to c#dictionary
- 6. Swift 1D Dictionary to 2D
- 7. alamofire encodingCompletion JSON to dictionary
- 8. LINQ to Dictionary - 使用XML
- 9. C#Dictionary to Json格式
- 10. Dictionary to Json object,「Expected expression」
- 11. C#List <dictionary> To Json
- 12. c#to C++ dictionary unordered_map results
- 13. vb.net linq to dictionary rounding error
- 14. Hashtable to Dictionary <> syncroot。
- 15. python csv into dictionary
- 16. python dictionary count
- 17. Python Dictionary Ordered Pairs
- 18. python/sets/dictionary/initialization
- 19. Python split()for dictionary
- 20. python globals dictionary
- 21. Python Dictionary Pop
- 22. Python 3.3 Dictionary
- 23. Transforming Dictionary <T,U> to Dictionary <T,U.PropertyValue>
- 24. Python 3 Dictionary「list indices need to be integers not str」
- 25. Sorting HTML table or Dictionary keys to make specific layout
- 26. Swift 3 NSDictionary to Dictionary conversion causes NSInvalidArgumentException
- 27. python reverse/transponse a dictionary
- 28. Java Dictionary like like Python
- 29. python list as dictionary key
- 30. Lock Dictionary in Dictionary - ConcurrentDictionary
你能提供有關的樹字典的結構的詳細信息?你遇到的困難是什麼? –
字典功能需要輸入ga兩個鍵: 'name'=節點的名稱 'children'=具有子節點列表的值(它們本身是同一類型的字典) 字典是一棵樹。 難題是實現這個功能,它作爲字典d的輸入,創建一個節點類型爲NodeTree – antia