回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我使用下面的代码部分</p>
<pre><code>num_item = 3
for i in range(1,num_item+1):
list(itertools.combinations(range(0,num_item), i))
</code></pre>
<p>生成组合列表</p>
^{pr2}$
<p>我想将这些组合作为两个值的键:kvalue和kweight,如下例所示</p>
<pre><code>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
</code></pre>
<ol>
<li><p>有没有好的数据结构来存储上面的数据?</p></li>
<li><p>如何将(0,)转换为(字符串的)键?</p></li>
<li><p>以后我还需要按kweight对列表进行排序,是否可以使用一个可以调用python排序函数的数据结构?</p></li>
</ol>
<hr/>
<p>编辑:我想我应该扩展上面的例子。我想将(0,1,2)存储为键7,这个键有两个值:kvalue=-1,kweight=9</p>
<pre><code>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
</code></pre>