2017-06-01 69 views
0
dic1 = { 
    'a':2, 
    'b':3 
} 

dic2 = { 
    'a':2, 
    'b':3, 
    'c':5 
} 
... 

我特別的問題是更多的Python問題中的語法,我自己滿意。假設你有一堆字典,並且想要加入所有可能不存在的屬性a,b和c ......我當前的代碼有點笨重,而且我不是一羣elif語句的粉絲。 ..檢查字典中的鍵值

if 'a' in dicX: 
    total+=dicX['a'] 
if 'b' in dicX: 
    total+=dicX['b'] 
if 'c' in dicX: 
    total+=dicX['c'] 

任何人都可以推薦一個更好的單線方式做到這一點嗎?或者只是一個更清潔的方式來做到這一點

+0

*另見:https://stackoverflow.com/questions/19461747/sum-corresponding-elements-of-multiple-python-dictionaries –

+0

THANK YOU!這個巨大的粉絲... –

回答

0
{k : (dic1[k] if k in dic1 else 0) + (dic2[k] if k in dic2 else 0) 
for k in dic1.keys() | dic2.keys()} 
#{'b': 6, 'c': 5, 'a': 4} 
+0

不是一個壞的建議,仍然只是重新格式化,認爲可能沒有一個更清潔的方式來做到這一點......但謝謝! –