2017-03-05 31 views
0

幫助:Sum字典值?

請編寫一個名爲sumDictionaryValues的函數,它接受一個參數:一個字典變量。這個字典的鍵將是字符串變量。這本字典的值將每個都是一個數字列表。你的函數應該創建一個新的字典。新詞典的鍵應與原詞典的鍵相同。新字典的值應該是原始列表中各個值的總和。

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

回答

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

試試這個:

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

只是一個for循環:

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

新的具備全部彙總值字典