以下のコード部分を使用します
num_item = 3
for i in range(1,num_item+1):
list(itertools.combinations(range(0,num_item), i))
組み合わせのリストを生成する
[[(0,), (1,), (2,)], [(0, 1), (0, 2), (1, 2)], [(0, 1, 2)]]
以下の例に示すように、これらの組み合わせを kvalue と kweight の 2 つの値のキーとして作成したいと思います。
key 1 : (0,) , value 1 : kvalue = 8 kweight = 4
key 2 : (1,) , value 2 : kvalue = 10 kweight = 5
key 3 : (2,) , value 3 : kvalue = 15 kweight = 8
上記のデータを保存するための適切なデータ構造はありますか?
(0,) を (文字列の) キーに変換するにはどうすればよいですか?
後で kweight でリストをソートする必要もありますが、python ソート関数を呼び出すことができるデータ構造を使用することは可能ですか?
編集済み:上記の例を拡張する必要があると思います。たとえば、(0,1,2) をキー 7 として保存したいとします。このキーには 2 つの値があります: kvalue = -1、kweight = 9
key 1 : (0,) , value 1 : kvalue = 8 kweight = 4
key 2 : (1,) , value 2 : kvalue = 10 kweight = 5
key 3 : (2,) , value 3 : kvalue = 15 kweight = 8
key 4 : (0, 1) , value 4 : kvalue = 18 kweight = 9
key 5 : (0, 2) , value 5 : kvalue = -1 kweight = 4
key 6 : (1, 2) , value 6 : kvalue = -1 kweight = 5
key 7 : (0, 1, 2) , value 7 : kvalue = -1 kweight = 9