問題におけるアイテムのレベルを取得:ネストされたリスト
は、私はいくつかのリンクされたデータを持っていると私はこの絵にこのような構造を構築したい:
をしてもらいます将来的には私の木構造の最下位レベルを凝視することによっていくつかの計算を行いますので、各項目のレベル。
期待される結果:
- レベル0:
- レベル1:A = B、C、D 私は私のレベルごとにアイテムを与える構造を取得する必要があります
- レベル2:D = E、F、G
- レベル3:E = H、I、J、K
私がこれまで試してみました何:
を私は動作をシミュレートするために、この再帰的なコードを試してみたが、私は項目に項目のレベルを取得できませんよ。
dict_item = {"A": ["B","C","D"], "D": ["E","F","G"], "E":["H","I","J"]}
def build_bom(product):
if not dict_item.get(product):
return product
else :
return [build_bom(x) for x in dict_item.get(product)]
print(build_bom("A"))
私の出力は、このようなネストされたリストです:
['B', 'C', [['H', 'I', 'J'], 'F', 'G']]
私の質問:
私は、これは私の問題を処理するための最良の方法であるかはわかりません。 希望の出力を得るには?ここ が所望の出力である:
[ {"parent_E":["H", "I", "J"]},
{"parent_D": ["E", "F", "G"]},
{"parent_A"} :["D","C","B"]},
]
辞書のリスト(キーが親で、値が子供である場合)、リストの最初の要素は、私の構造の最下位レベルで、最後は最高の要素です。
PS:これはシミュレーションですが、将来はこのコードで大規模なデータセットを処理する必要があります。 助けていただければ幸いです。
「そして、どのように取得します所望の出力?あなたは私たちにあなたの出力を見せましたが、あなたは "望ましい出力"が何であるかを決して言及しませんでした出力が希望の出力であれば、あなたの質問は明確ではありません。現在のアプローチで何が問題になっていますか? – alfasin
私は「期待される結果」のセクションを見ていますが、期待される結果の実際の*出力*は表示されません。 – alfasin
を試してみてください: '[{{" parent_ "+ k:v} k、dict_item.items()で' – alfasin