0

我正在编写一个 Python 程序,我需要计算文本文件中每个单词的数量。

def count_words(word,d):
    for l in word:
        if l in d:
            d[l] += 1
        else:
            d[l] = 1
        return d

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

1 回答 1

2

如果其中一个条件是 an,您可以轻松地在一个条件下进行反向排序并在另一个条件下进行正向排序,方法是int通过否定intkey func

代替

freq_list.sort()

freq_list.sort(key=lambda x:(-x[1], x[0]))

在更一般的情况下,由于 Python 的排序是稳定的,您可以按第二个键排序,然后按第一个键排序

freq_list.sort(key=lambda x:x[0])
freq_list.sort(key=lambda x:x[1], reverse=True)

缺点是需要做两个排序,所以速度有点慢

于 2013-11-19T00:42:28.613 回答