我是一个蟒蛇新手,所以也许我的问题是很noob。 假设我有一个单词列表,我想查找每个单词出现在列表中的次数。 明显的方式做到这一点是:蟒蛇项目频率计数
words = "apple banana apple strawberry banana lemon"
uniques = set(words.split())
freqs = [(item, words.split.count(item)) for item in uniques]
print(freqs)
但我发现这个代码不是很好,因为这样的程序运行,通过文字列表两次,一次打造集,第二时间计数出现数。 当然,我可以编写一个函数来遍历列表并进行计数,但这不会是pythonic。那么,有没有更高效和pythonic的方式? (在列表中增加适当的字典循环键)
不是两次,它看起来像O(N * N)复杂性 – Drakosha 2009-05-21 15:10:37
@Drakosha:同意我刚刚也看到了这一点。 – 2009-05-21 15:12:26
是的,复杂性是O(n^2),但是列表本身是贯穿两次的。 – Daniyar 2009-05-21 15:15:19