那个怎么样:
dict( [ (n, a.get(n, 0)+b.get(n, 0)) for n in set(a)|set(b) ] )
或不创建中间列表(生成器就足够了):
dict( (n, a.get(n, 0)+b.get(n, 0)) for n in set(a)|set(b) )
圣经经文:
正如注释者正确解决的那样,有一种方法可以使用新的(来自Py2.7的)collections.Counter类更轻松地实现这一点。我记得,当我写下答案时,此版本不可用:
from collections import Counterdict(Counter(a)+Counter(b))



