Skip to main content
 首页 » 编程设计

Python 字典理解 : assign value to key, 其中值是一个列表

2025年05月04日13dudu

示例:

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}) 

您的代码不起作用的原因是您没有指定任何求和或聚合逻辑。这将需要某种分组操作,或者像这里一样,迭代并添加到新字典中的相关项目。