我有这样的字典:
dic = {'01':[1,2], '02':[1], '03':[2,3]}
我想要实现的是一个新的dict,它的键是键的组合(仅限2组),没有重复值。 在这个简单的例子中,输出将是:
newDic = {'0102':[1,2], '0103':[1,2,3],'0203':[1,2,3]}
感谢一帮!!
答案 0 :(得分:1)
您可以使用itertools.combinations
来获取不同的键组合。然后使用set
获取列表的唯一值。把它全部放到这样的dictionary-comprehension中:
>>> dic = {'01':[1,2], '02':[1], '03':[2,3]}
>>> import itertools as IT
>>> {a+b: list(set(dic[a]+dic[b])) for a,b in IT.combinations(dic, 2)}
{'0203': [1, 2, 3], '0301': [1, 2, 3], '0201': [1, 2]}
>>> {''.join(sorted([a,b])): list(set(dic[a]+dic[b])) for a,b in IT.combinations(dic, 2)}
{'0203': [1, 2, 3], '0103': [1, 2, 3], '0102': [1, 2]}
答案 1 :(得分:0)
newDic = { a+b : list(set(dic[a] + dic[b])) for a in dic for b in dic if b>a }