2015-06-26 45 views
1

比方說,我有一個列表(或其他可迭代對象)['a','b','c','d']。我有一個dictX。我可以總結他們在天真的方式:用特定鍵列表來總結字典值的pythonic方法?

s = 0 
for k in ['a','b','c','d']: 
    s += X[k] 

但是有沒有更pythonic的方式?

+0

沒有什麼UN-Pythonic關於這個。 – wwii

+0

@ o11c計數器是完全不相關的。 –

+0

@MalikBrahimi它取決於XY這個問題是怎麼回事。 – o11c

回答

3

你可以這樣做:

s = sum(X[k] for k in ['a','b','c','d']) 
+0

它是否在Python 3或更小的迭代器中生成列表? – xuhdev

+0

'sum'生成一個整數。 –

3

是,通過使用sum功能和generator expression。你甚至可以迭代字符串的字符:

s = sum(X[k] for k in 'abcd') 
+2

或額外的預防措施:'sum(d.get(i,0)for'in'abcd')' –

+0

請注意'a,b,c,d'<>'''''''''' , 'D'] –

相關問題