擅长:python、mysql、java
<p><code>list.count</code>具有O(<em>n</em>)复杂性。在循环中运行O(<em>n</em>)操作将特别低效。它至少具有复杂性O(<em>m</em>*<em>n</em>),其中<em>m</em>是唯一单词的数量</p>
<p>相反,您可以使用<code>collections.Counter</code>作为O(<em>n</em>)解决方案:</p>
<pre><code>words = 'this is a test string of words containing repeated words within the string'
from collections import Counter
c = Counter(words.split())
res = c.most_common(5)
[('string', 2), ('words', 2), ('this', 1), ('is', 1), ('a', 1)]
</code></pre>