Python从字典创建树

2024-09-26 18:44:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个问题,我必须创建一个函数,从任意数量的元素字典创建一个树。 字典示例:

D1 = {'name': 'musica',
      'children': [
          {'name': 'rock',
           'children': [
               {'name': 'origini', 'children': []},
               {'name': 'rock&roll', 'children': []},
               {'name': 'hard rock', 'children': []}]},
          {'name': 'jazz',
           'children': [
               {'name': 'origini',
                'children': [{'name': '1900',
                              'children': [{'name': 'origini', 'children': []}]}]},
               {'name': 'ragtime', 'children': []},
               {'name': 'swing', 'children': []}]}]}

D2 = {'name': 'html',
      'children': [
          {'name': 'head',
           'children': [
               {'name': 'meta', 'children': []},
               {'name': 'title', 'children': []},
               {'name': 'style', 'children': []}]},
          {'name': 'body',
           'children': [
               {'name': 'h1', 'children': []},
               {'name': 'section',
                'children': [
                    {'name': 'p',
                     'children': [
                         {'name': 'strong', 'children': []},
                         {'name': 'b', 'children': []},
                         {'name': 'em', 'children': []},
                         {'name': 'i', 'children': []}]},
                    {'name': 'p',
                     'children': [
                         {'name': 'q', 'children': []},
                         {'name': 'code', 'children': []},
                         {'name': 'kbd', 'children': []}]},
                    {'name': 'p',
                     'children': [
                         {'name': 'sup', 'children': []},
                         {'name': 'sub', 'children': []}]},
                    {'name': 'p',
                     'children': [
                         {'name': 'span', 'children': []}]}]},
               {'name': 'footer',
                'children': [
                    {'name': 'a',
                     'children': [
                         {'name': 'strong', 'children': []}]},
                    {'name': 'a',
                     'children': [
                         {'name': 'strong', 'children': []}]}]}]}]}

D3 = {'name': 'Giovanni di Bicci',
      'children': [
          {'name': 'Cosimo il vecchio',
           'children': [
               {'name': 'Piero il gottuso',
                'children': [
                    {'name': 'Lorenzo il magnifico',
                     'children': [
                         {'name': 'Piero II',
                          'children': [
                              {'name': 'Lorenzo II', 'children': []}]},
                         {'name': 'Papa Leone X', 'children': []},
                         {'name': 'Giuliano', 'children': []}]}]},
               {'name': 'Giovanni Carlo', 'children': []}]},
          {'name': 'Lorenzo',
           'children': [
               {'name': 'Pierfrancesco',
                'children': [
                    {'name': 'Lorenzo', 'children': []},
                    {'name': 'Giovanni',
                     'children': [
                         {'name': 'Giovanni dalle Bande Nere',
                          'children': [
                              {'name': 'Lorenzino', 'children': []},
                              {'name': 'Cosimo I',
                               'children': [
                                   {'name': 'Francesco I',
                                    'children': [
                                        {'name': 'Maria', 'children': []}]},
                                   {'name': 'Ferdinando I',
                                    'children': {}}]}]}]}]}]}]}

有什么解决办法吗?在

非常感谢

添加

谢谢大家的回答。在

现在我编写完整的练习,以便您更好地理解和回答我:实际上,我实现了一个用以下方法生成的类TNode:

^{pr2}$

我还需要创建一个函数create_tree(d),它以表示树的字典“d”为例,创建具有TNode类型节点的相应树并返回根。函数必须按照键“children”列表中列出的顺序添加子项。在

抱歉,如果一开始我没有写这些。在

我无法创建一个引用类的函数,从字典中创建树。在

我使用python2.7

谢谢。在


Tags: 函数name数量字典iliistrongchildren

热门问题