擅长:python、mysql、java
<p>基于@Ned Batchelder的解决方案,但不创建虚拟列表:</p>
<pre><code>import collections
def countWordDistances(li):
wordmap = collections.defaultdict(lambda:[0.0, 0.0])
for i, w in enumerate(li, 1):
wordmap[w][0] += i
wordmap[w][1] += 1.0
for k, (t, n) in wordmap.iteritems():
wordmap[k] = t / n
return wordmap
</code></pre>