擅长:python、mysql、java
<p>代码的最后一部分是不可理解的,但如果您只想计算单词数并将其插入字典,并按频率降序排序,我建议使用<code>defaultdict</code>并按如下方式实现:</p>
<pre><code>data = ['marjori',
'splendid',
'rivet',
'farrah',
'perform',
'farrah',
'fawcett']
from collections import defaultdict
def build_dict(data, vocab_size = 5000):
"""Construct and return a dictionary mapping each of the most frequently appearing words to a unique integer."""
word_count = defaultdict(int) # A dict storing the words that appear in the reviews along with how often they occur
for w in data:
word_count[w]+=1
#print(word_count)
# how can I sort the words to make sorted_words[0] is the most frequently appearing word and sorted_words[-1] is the least frequently appearing word.
sorted_words = {k: v for k, v in sorted(word_count.items(), key=lambda item: item[1])}
return sorted_words
build_dict(data)
</code></pre>
<p>输出:</p>
<pre><code>{'farrah': 2,
'fawcett': 1,
'marjori': 1,
'perform': 1,
'rivet': 1,
'splendid': 1}
</code></pre>