如何将带有整数的字典作为字典中的键,将元组作为键

时间:2016-12-09 16:09:52

标签: python python-3.x dictionary tuples

我有一个字典,其中键是元组(对):

dictionary1 = {(0, 1): 0, (2, 7): 3, (4, 7): 0, (1, 3): 0} 

(值表示元组出现的次数)

我想转换字典,以便元组中的每个元素都变为key到新字典,保持与原始字典中相同的value。我新词典的结构应该是:

dictionary2 = {0: 0, 1: 0, 2: 3, 3: 0, 4: 0, 7: 3} 

最简单/最有效的方法是什么?如果元组值出现在多个位置,则新的dict将包含存在的所有元组的值的总和。

1 个答案:

答案 0 :(得分:1)

所以你基本上都在寻找一个柜台。幸运的是,python在collections模块中有一个:

from collections import Counter

c = Counter()
for k, v in d.items():
    for i in k:
        c[i] += v

或者,使用普通词典:

di = {}    
for k,v in d.items():
    for i in k:
        di[i] = di.get(i, 0) + v