簡體   English   中英

如何使用 Python 將字典列表遞歸為層次結構?

[英]How to recurse a list of dictionaries into a hierarchical structure using Python?

這是我的數據結構的一小部分摘錄:

[
  {
    "name": "manager_a",            # doesn't manage any other managers
    "manager": "manager_b",
  },
  {
    "name": "manager_b",
    "manager": "manager_c",
  },
  {
    "name": "manager_c"             # doesn't have a manager
  },
  {
    "name": "manager_d",            # doesn't manage any other managers
    "manager": "manager_c"
  },
  ...
]

我想要的結果是顯示經理之間的層次結構。 可能是這樣的,但我對如何構建層次結構的其他想法持開放態度:

[
  {
    "name": "manager_c",            # doesn't have a manager
    "reports": [
       {
         "name": "manager_b",
         "reports": [
           "manager_a"              # doesn't manage any other managers
         ]
       },
       "manager_d"                  # doesn't manage any other managers
    ]
  }
]

沒有循環關系,但管理器層次結構可以有幾層深。

我嘗試了各種方法,但我真的很難理解遞歸。

在最基本的層面上,您可能正在尋找一種稱為QuickUnion的數據結構,其中每個“id”是您的 label“a”、“b”、“c”等,並且每個人都連接到零或更多人。 結果是一棵很像您所設想的分層樹。 如果您還不知道它是什么,請嘗試一下。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM