选择列表中最常用的字符串,如果“ n”个字符串的频率计数相同,则按字母顺序比较每个字符串的第一个字母

我有一个列表:

Fruit_list = ['apples','oranges','peaches','watermelon','watermelon']

要输出:

print(most_frequent(Fruit_list))

应打印出“ 橙色

我想在列表中找到最频繁的字符串。最常见的3个项目是“橙色”,“桃子”,“豌豆”。但是,我想选择'oranges ,因为'o'在字母表中的'p'和'w'之前

eer05067 回答:选择列表中最常用的字符串,如果“ n”个字符串的频率计数相同,则按字母顺序比较每个字符串的第一个字母

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

要澄清:

  1. sorted(l,key=str.lower)按字典顺序对列表l进行排序。

  2. 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)

本文链接:https://www.f2er.com/3143279.html

大家都在问