更改键名称并添加相同键的值

时间:2019-09-25 15:35:30

标签: python dictionary

让我们假设我有一个这样的字典:

input_dict = {'3': 2, '5': 4, '36': 7,'62':6}

我想将其作为输出:

input_dict = {'3': 9, '5': 4, '6':6}

基本上,我想做以下事情:

  1. 仅保留按键的第一个字符
  2. 如果之后某些键相同,则添加其值

最有效的方法是什么?

3 个答案:

答案 0 :(得分:2)

您可以使用defaultdict并切片key字符串,仅保留第一个字符:

from collections import defaultdict

d = defaultdict(int)
for k,v in input_dict.items():
    d[k[0]] += v

print(d)
# defaultdict(int, {'3': 9, '5': 4, '6': 6})

答案 1 :(得分:1)

使用此:

new_dict = {}
for key, val in input_dict.items():
    if key[0] not in new_dict:
        new_dict[key[0]] = val
    else:
        new_dict[key[0]] += val

输出

{'3': 9, '5': 4, '6': 6}

答案 2 :(得分:1)

您可以使用字典中的get方法:

input_dict = {'3': 2, '5': 4, '36': 7, '62': 6}

result = {}
for k, v in input_dict.items():
    key = k[0]
    result[key] = v + result.get(key, 0)

print(result)

输出

{'3': 9, '5': 4, '6': 6}