我有一个列表:
Fruit_list = ['apples','oranges','peaches','watermelon','watermelon']
要输出:
print(most_frequent(Fruit_list))
应打印出“ 橙色”
我想在列表中找到最频繁的字符串。最常见的3个项目是“橙色”,“桃子”,“豌豆”。但是,我想选择'oranges ,因为'o'在字母表中的'p'和'w'之前
我有一个列表:
Fruit_list = ['apples','oranges','peaches','watermelon','watermelon']
要输出:
print(most_frequent(Fruit_list))
应打印出“ 橙色”
我想在列表中找到最频繁的字符串。最常见的3个项目是“橙色”,“桃子”,“豌豆”。但是,我想选择'oranges ,因为'o'在字母表中的'p'和'w'之前
from collections import Counter
fruits = ['apples','oranges','peaches','watermelon','watermelon']
counter = Counter(fruits)
sorted_fruits = sorted(counter.items(),key=lambda tpl: (-tpl[1],tpl[0]))
print(sorted_fruits[0][0])
输出:
oranges
,
我认为您正在寻找这样的功能:
def most_frequent(l):
return max(sorted(l,key=str.lower),key=l.count)
Fruit_list = ['apples','watermelon']
print(most_frequent(Fruit_list)) # outputs "oranges"
...如果您不想使用Counter
。
要澄清:
sorted(l,key=str.lower)
按字典顺序对列表l
进行排序。
max(<>,key=l.count)
获取排序列表的模式。
您尝试以下操作:
from collections import Counter
words = ['apples','watermelon']
most_common_words= [word for word,word_count in Counter(words).most_common(3)]
most_common_words
,
from collections import Counter
Fruit_list = ['apples','zranges','watermelon']
max_counter = 0
min_ret = "z"
my_dict = dict(Counter(Fruit_list))
for items in my_dict.keys():
if my_dict[items] > max_counter:
max_counter = my_dict[items]
min_ret = items
if my_dict[items] == max_counter:
if items < min_ret:
min_ret = items
print(min_ret)
〜