求和字典值?

时间:2017-03-05 02:20:01

标签: python dictionary

帮助:

请编写一个名为sumDictionaryValues的函数,它接受一个参数:一个字典变量。这本词典的键是String变量。这个字典的值将是一个数字列表。你的函数应该创建一个新的字典。新词典的键应与原始词典的键相同。新词典的值应该是原始列表中各个值的总和。

# Declare the test dictionaries
dictA = {"A": [1, 2, 3], "B": [9, -4, 2], "C": [3, 99, 1]}
dictB = {"D": [1, 2, 10], "E": [-2, -4, 8], "F": [100000, 0, 1]}
dictC = {"G": [-1, -2, 3, 0, 4], "H": [-11, -4, 15], "I": [1]}

# Obtain the test results
resultA = sumDictionaryValues(dictA)
resultB = sumDictionaryValues(dictB)
resultC = sumDictionaryValues(dictC)

# Check some of the values of resultA
print(resultA["A"] == 6)
print(resultA["B"] == 7)

# Check some of the values of resultB
print(resultB["E"] == 2)
print(resultB["F"] == 100001)

# Check some of the values of resultC
print(resultC["G"] == 4)
print(resultC["I"] == 1)

4 个答案:

答案 0 :(得分:2)

尝试使用sum()方法:

dictA = {"A": [1, 2, 3], "B": [9, -4, 2], "C": [3, 99, 1]}

resultA={}
for k,v in dictA.items():
    resultA[k]=sum(v)

print(resultA)

或者只是创建字典理解:

resultA={k:sum(v) for k,v in dictA.items()}

输出:

{'A': 6, 'B': 7, 'C': 103}

答案 1 :(得分:1)

试试这个:

def sumDictionaryValues(d):
    new_d = {}
    for i in d:
        new_d[i]= sum(d[i])
    return new_d

答案 2 :(得分:1)

只是for循环:

new = {}
for key in dict:
    new_d[key]= sum(d[key])

新词典具有所有求和值

答案 3 :(得分:0)

一个衬里-相同

my_dict = {"A": [1, 2, 3], "B": [9, -4, 2], "C": [3, 99, 1]}

my_dict = {key : sum(my_dict[key]) for key in my_dict}


print(my_dict)

{'A': 6, 'B': 7, 'C': 103}