Выберите наиболее часто встречающуюся строку в списке, если 'n' строк имеют одинаковый счетчик частоты, сравните по алфавиту первую букву каждой строки - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть список:

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

Хотите вывести:

print(most_frequent(Fruit_list))

который должен распечатать " апельсины "

Iхочу найти наиболее частую строку в списке. 3 наиболее часто встречающиеся вещи: «апельсины», «персики», «груши». Однако я хочу выбрать «апельсины» , поскольку «o» стоит перед «p» и «w» в алфавите

Ответы [ 4 ]

1 голос
/ 07 ноября 2019

Я думаю, вы ищете такую ​​функцию:

def most_frequent(l):
    return max(sorted(l, key=str.lower), key=l.count)

Fruit_list = ['apples','oranges','peaches','peaches','watermelon','oranges','watermelon']
print(most_frequent(Fruit_list))  # outputs "oranges"

... если вы не хотите использовать Counter.

Чтобы уточнить:

  1. sorted(l, key=str.lower) сортирует список l лексикографически.

  2. max(<>, key=l.count) возвращает режим отсортированного списка.

1 голос
/ 07 ноября 2019
from collections import Counter

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

counter = Counter(fruits)

sorted_fruits = sorted(counter.items(), key=lambda tpl: (-tpl[1], tpl[0]))

print(sorted_fruits[0][0])

Выход:

oranges
0 голосов
/ 07 ноября 2019
from collections import Counter

Fruit_list = ['apples','zranges','peaches','peaches','watermelon','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)

~

0 голосов
/ 07 ноября 2019

Вы пробовали следующее:

from collections import Counter
words = ['apples','oranges','peaches','peaches','watermelon','oranges','watermelon']
most_common_words= [word for word, word_count in Counter(words).most_common(3)]
most_common_words
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...