我需要使用Python计算文本中每个单词的出现频率。我的想法是将单词存入字典中,并为每个单词计数。
现在如果我需要按出现次数对单词进行排序,是否可以使用同一个字典而不是使用新字典,其中键为计数,值为单词数组?
我需要使用Python计算文本中每个单词的出现频率。我的想法是将单词存入字典中,并为每个单词计数。
现在如果我需要按出现次数对单词进行排序,是否可以使用同一个字典而不是使用新字典,其中键为计数,值为单词数组?
这是我使用 Counter 对一副扑克牌按照最频繁出现的方式进行排序的方法:
counter = Counter([card.value for card in self.cards])
ordered = sorted(self.cards, key=lambda card: -counter[card.value])
首先,我创建一个包含所有卡牌值的计数器,然后使用计数器中的计数通过索引对卡牌进行排序。
之前的解决方案并没有像你在问题中要求的那样输出字典。
基于这里其他答案和这个stackoverflow帖子(https://dev59.com/EHRB5IYBdhLWcg3weHLx#613218),我的解决方案是使用sorted
,然后按排序顺序重新创建字典:
from collections import Counter
counter = Counter({'blue': 35, 'red': 252, 'green': 127})
sorted_dict = dict(sorted(counter.items(),
key=lambda item: item[1],
reverse=True))