比方說,我有一個列表(或其他可迭代對象)['a','b','c','d']
。我有一個dict
X
。我可以總結他們在天真的方式:用特定鍵列表來總結字典值的pythonic方法?
s = 0
for k in ['a','b','c','d']:
s += X[k]
但是有沒有更pythonic的方式?
比方說,我有一個列表(或其他可迭代對象)['a','b','c','d']
。我有一個dict
X
。我可以總結他們在天真的方式:用特定鍵列表來總結字典值的pythonic方法?
s = 0
for k in ['a','b','c','d']:
s += X[k]
但是有沒有更pythonic的方式?
你可以這樣做:
s = sum(X[k] for k in ['a','b','c','d'])
它是否在Python 3或更小的迭代器中生成列表? – xuhdev
'sum'生成一個整數。 –
是,通過使用sum
功能和generator expression。你甚至可以迭代字符串的字符:
s = sum(X[k] for k in 'abcd')
或額外的預防措施:'sum(d.get(i,0)for'in'abcd')' –
請注意'a,b,c,d'<>'''''''''' , 'D'] –
沒有什麼UN-Pythonic關於這個。 – wwii
@ o11c計數器是完全不相關的。 –
@MalikBrahimi它取決於XY這個問題是怎麼回事。 – o11c