0

计算 .txt 文件中有多少个单词。

然后,按频率和字母顺序打印单词。

def count_words():
    d = dict()
    word_file = open('words.txt')
    for line in word_file:
        word = line.strip();
        d = countwords(word,d)
    return d

我不确定我这样做是否正确。希望有人可以帮助我。

当我运行程序时,我收到:

>>>
>>>

这是一段演讲。

4

2 回答 2

2

我会像你一样使用字典,但不同的是:

def count_words():
d = dict()
word_file = open('words.txt')
for line in word_file:
    word = line.strip();
    if word not in d.keys():
        d[word] = 0
    d[word]+=1

然后你可以按它们的计数对键进行排序并打印它们:

from operator import itemgetter
print(sorted(d.items(), key=itemgetter(1)))

对于我使用的排序简介:按值排序 Python 字典

此外,您的程序没有任何打印语句,只有一个返回行,这就是您什么也得不到的原因。

于 2013-11-14T03:51:09.580 回答
1
#!/usr/local/cpython-3.3/bin/python

import pprint
import collections

def words(filename):
    with open(filename, 'r') as file_:
        for line in file_:
            for word in line.split():
                yield word.lower()

counter = collections.Counter(words('/etc/services'))

sorted_by_frequency = sorted((value, key) for key, value in counter.items())
sorted_by_frequency.reverse()
print('Sorted by frequency')
pprint.pprint(sorted_by_frequency)
print('')

sorted_alphabetically = sorted((key, value) for key, value in counter.items())
print('Sorted alphabetically')
pprint.pprint(sorted_alphabetically)
于 2013-11-14T04:01:59.227 回答