2017-03-05 8 views
0

ヘルプ:辞書の合計値ですか?

引数を1つ受け入れる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]) 

新すべて合計した値を持つ辞書

関連する問題