📅  最后修改于: 2023-12-03 15:25:32.362000             🧑  作者: Mango
本文将介绍如何编写一个程序,找出给定序列中重复次数第二多的单词。给定序列是由多个单词组成的,我们需要寻找出这个序列中重复次数第二多的单词。程序将接受一个字符串列表作为输入,并返回第二多的单词。如果没有第二多的单词,则返回None。
首先,我们需要遍历整个字符串列表,并使用collections.Counter函数来记录每个单词出现的次数。接下来,我们可以使用sorted函数对计数器进行排序。排序后,我们可以选择返回第二个元素,即第二多的单词。如果没有第二多的单词,则返回None。
import collections
def find_second_most_common_word(words):
counter = collections.Counter(words)
sorted_counter = sorted(counter.items(), key=lambda item: item[1], reverse=True)
freqs = [freq for _, freq in sorted_counter]
for i in range(len(freqs) - 1):
if freqs[i] > freqs[i + 1]:
return sorted_counter[i + 1][0]
return None
words = ['apple', 'banana', 'banana', 'cherry', 'cherry', 'cherry', 'date']
second_most_common_word = find_second_most_common_word(words)
print(second_most_common_word) # 输出:'date'
本文介绍了如何编写一个程序,找出给定序列中重复次数第二多的单词。程序使用了collections.Counter和sorted函数来实现。如果你有任何问题,请在评论区提出,我会尽我所能回答你的问题。