実行する前にレベルとノードの正確な数を知らずに、Python dict を使用してツリーを作成します。
たとえば、サイズ、色、重さの 3 つの属性を持つ多くのアイテムをループします。各ループで次のことを行います
item_data = {}
for item in items:
size, color, weight = item.get_attr()
if size not in item_data:
item_data[size] = {}
if color not in item_data[size]:
item_data[size][color] = {}
if weight not in item_data[size][color]:
item_data[size][color][weight] = []
# Do something to the tree...
最後に、私はこのような辞書を取得します
item_data == {'L':{
'red':{45:[...],
50:[...]},
'green':{
40:[...]}},
'XL':{...}}
しかし、これは柔軟ではありません。たとえば、「価格」などの別の属性を追加したい場合は? 上記のコードの場合は、それを知って、もう 1 つ追加する必要があります。
私は次の方法でそれを行うことを考えていますが、数行でそれを行う方法がわかりません
attrs = [item.get_attr()]
for attr in attrs:
# Create the tree here..
前もって感謝します!