我的 python 程序返回一个包含子列表数据的列表。每个子列表都包含一篇文章的唯一 ID 和该文章的父 ID,即
pages_id_list ={ {22, 4},{45,1},{1,1}, {4,4},{566,45},{7,7},{783,566}, {66,1},{300,8},{8,4},{101,7},{80,22}, {17,17},{911,66} }
在每个子列表中,数据的结构是这样{*article_id*, *parent_id*}
的。如果article_id 和parent_id 相同,则显然意味着文章没有父级。
我想使用最少的代码对数据进行排序,以便对于每篇文章,如果可用,我可以轻松访问其子孙(嵌套数据)的列表。例如(使用上面的示例数据)我应该能够在一天结束时打印:
1
-45
--566
---783
-66
--911
....对于文章 ID 1
我只能整理出最高级别的(第一代和第二代)id。获得第 3 代及后续代时遇到问题。
这是我使用的代码:
highest_level = set()
first_level = set()
sub_level = set()
for i in pages_id_list:
id,pid = i['id'],i['pid']
if id == pid:
#Pages of the highest hierarchy
highest_level.add(id)
for i in pages_id_list:
id,pid = i['id'],i['pid']
if id != pid :
if pid in highest_level:
#First child pages
first_level.add(id)
else:
sub_level.add(id)
遗憾的是,我的代码不起作用。
任何朝着正确方向的帮助/轻推将不胜感激。谢谢
大卫