示例:
dictionary = {"key":[5, "string1"], "key2":[2, "string2"], "key3":[3, "string1"]}
应用此字典理解后:
another_dictionary = {key:value for (value,key) in dictionary.values()}
结果是这样的:
another_dictionary = {"string1": 5, "string2": 2}
换句话说,它不会对作为列表项的同一键下的整数值求和。
============================================= ==================
期望的结果:
another_dictionary = {"string1": 8, "string2": 2}
请您参考如下方法:
您可以为此使用 collections.defaultdict:
from collections import defaultdict
dictionary = {"key":[5, "string1"], "key2":[2, "string2"], "key3":[3, "string1"]}
d = defaultdict(int)
for num, cat in dictionary.values():
d[cat] += num
print(d)
defaultdict(<class 'int'>, {'string1': 8, 'string2': 2})
您的代码不起作用的原因是您没有指定任何求和或聚合逻辑。这将需要某种分组操作,或者像这里一样,迭代并添加到新字典中的相关项目。
