如何将字符串转换为字典,并计算每个单词的数量

时间:2013-05-15 06:01:04

标签: python string dictionary python-3.x

我只是想知道我将如何转换字符串,例如“你好那里好”,然后把它变成字典,然后使用这个字典,我想计算字典中每个单词的数量,然后返回它按字母顺序排列。所以在这种情况下它会返回:

[('hello', 1), ('hi', 1), ('there', 2)]

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:14)

>>> from collections import Counter
>>> text = "hello there hi there"
>>> sorted(Counter(text.split()).items())
[('hello', 1), ('hi', 1), ('there', 2)]
  

class collections.Counter([iterable-or-mapping])

     

Counter是用于计算可哈希对象的dict子类。它是一个无序集合,其中元素存储为字典键,其计数存储为字典值。计数允许为任何整数值,包括零或负计数。 Counter类与其他语言的包或多重集类似。

答案 1 :(得分:4)

jamylak对Counter表现不错。这是一个没有导入Counter的解决方案:

text = "hello there hi there"
dic = dict()
for w in text.split():
    if w in dic.keys():
        dic[w] = dic[w]+1
    else:
        dic[w] = 1

给出

>>> dic
{'hi': 1, 'there': 2, 'hello': 1}