Python 3.x确实有reduce
,您只需要做一个from functools import reduce
。它还具有“ dict理解”,其语法与您的示例中的语法完全相同。
Python 2.7和3.x还具有一个Counter类,该类可以完全满足您的要求:
from collections import Counter
cnt = Counter("abracadabra")
在Python 2.6或更早版本中,我个人使用defaultdict并分两行进行:
d = defaultdict(int)
for x in xs: d[x] += 1
那是干净,高效,Python式的,对于大多数人而言,它比涉及任何东西都容易理解reduce
。