Skip to main content
 首页 » 编程设计

python之如何在字典中添加具有相似键的值

2025年05月04日16bhlsheji

我想将 Python 字典中的值加在一起,如果它们的键以相同的字母开头..

例如,如果我有这个字典:{'apples': 3, 'oranges': 5, 'grapes': 4, 'apricots': 2, 'grapefruit': 9}

结果将是:{'A': 5,'G': 13, 'O': 5}

我只走到这一步就卡住了:

for k in dic.keys(): 
  if k.startswith('A'): 

任何帮助将不胜感激

请您参考如下方法:

获取每个键的第一个字符,对其调用 .upper() 并用大写字母对您的值求和。下面的循环

out = {} 
for key, value in original.iteritems(): 
    out[key[0].upper()] = out.get(key[0].upper(), 0) + value 

应该这样做。

您还可以使用 collections.defaultdict() object稍微简化一下:

from collections import defaultdict: 
 
out = defaultdict(int) 
for key, value in original.iteritems(): 
    out[key[0].upper()] += value 

或者你可以使用 itertools.groupby() :

from itertools import groupby 
 
key = lambda i: i[0][0].upper() 
out = {key: sum(v for k, v in group) for key, group in groupby(sorted(original.items(), key=key), key=key)}