使用python理解

时间:2017-03-19 03:00:01

标签: python

这是计算字符串中单词的代码。

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的一行代码来完成。 有人可以帮助解决一些代码和解释。

4 个答案:

答案 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()))])