擅长:python、mysql、java
<p>这是有效的:</p>
<pre><code>import collections
data= [
{'x': 1.0, 'y': 0.5, 'z': 0.25 },
{'w': 0.5, 'x': 0.2 }
]
tally = collections.defaultdict(lambda: (0.0, 0))
for d in data:
for k,v in d.items():
sum, count = tally[k]
tally[k] = (sum+v, count+1)
results = {}
for k, v in tally.items():
t = tally[k]
results[k] = t[0]/t[1]
print results
</code></pre>
<p>我不知道它是否比你的快,因为你还没有发布你的代码。在</p>
^{pr2}$
<p>我尝试在tally中避免再次存储所有的值,只是简单地累积最后计算平均值所需的总和和计数。Python程序中的时间瓶颈通常在内存分配器中,使用较少的内存可以大大提高速度。在</p>