1

実行する前にレベルとノードの正確な数を知らずに、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..

前もって感謝します!

4

1 に答える 1