私の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日の終わりに印刷できるはずです。
1
-45
--566
---783
-66
--911
....記事ID1の場合
最高レベル(第1世代と第2世代)の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)
私のコードは悲しいことに機能しません。
正しい方向への助け/微調整は大歓迎です。ありがとう
デビッド