我使用下面的代码部分
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,如下面的示例所示
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