【发布时间】:2010-10-27 23:07:15
【问题描述】:
假设我有一个单词列表,我想找出每个单词在该列表中出现的次数。
一个明显的方法是:
words = "apple banana apple strawberry banana lemon"
uniques = set(words.split())
freqs = [(item, words.split().count(item)) for item in uniques]
print(freqs)
但我觉得这段代码不太好,因为程序运行了两次单词表,一次是建立集合,第二次是计算出现次数。
当然,我可以编写一个函数来遍历列表并进行计数,但这不会像 Python 那样。那么,有没有更高效和 Pythonic 的方式呢?
【问题讨论】:
-
不是两次,看起来像 O(N*N) 复杂度
-
您可能对性能问题感兴趣:stackoverflow.com/a/20308657/2534876。
标签: python count frequency counting