这是计算字符串中单词的代码。
def word_count(text):
word_count = {}
for word in str(text).split():
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
return word_count
我是python的新手,我相信这可以通过使用python comprehensions的一行代码来完成。 有人可以帮助解决一些代码和解释。
答案 0 :(得分:5)
from collections import Counter
Counter(text.split())
您也可以使用defaultdict
from collections import defaultdict
word_count = defaultdict(int)
for word in text.split():
word_count[word] += 1
答案 1 :(得分:2)
更好的结果你可以这样写,
from collections import Counter
# make your str in lower for avoiding, Hello OR hello are different
text = text.lower()
Counter(text.split())
答案 2 :(得分:1)
虽然我个人不建议使用单行,但可以使用str.count
完成:
text = ' ' + 'this is that which is this' + ' ' # spaces on the sides for word separation
word_counts = {word: text.count(' ' + word + ' ') for word in text.split()}
答案 3 :(得分:1)
collections.Counter是实际使用的更好选择。为了好玩,我添加了另一行实现:
from itertools import groupby
def word_count(s):
return dict([(k, len(list(g))) for k, g in groupby(sorted(s.split()))])