Python: получить самое низкое и наиболее частое значение списка. - PullRequest
0 голосов
/ 02 августа 2020

Привет, сообщество! Не могли бы вы помочь мне по следующей проблеме? Мне не удается найти эффективное решение моей проблемы. Любая помощь высоко ценится! Заранее благодарю вас!

Моя проблема : Как первый шаг , я хотел бы определить наиболее частые значения данный список целых чисел. Как второй шаг , если есть несколько наиболее частых значений, я хотел бы выбрать наименьшее из них.

Пример : Учитывая следующий список, я хотел бы получите " 5 ", так как это самое низкое и наиболее частое значение.

list = [1,2,3,4,5,5,5,6,6,6,7,7,8,8,8]

Не могли бы вы мне помочь? Спасибо!

Ответы [ 2 ]

1 голос
/ 02 августа 2020

Можно получить наиболее распространенное значение из нескольких кандидатов за линейное время, используя встроенный Counter класс:

from collections import Counter

l = [1,2,3,4,5,5,5,6,6,6,7,7,8,8,8]
counter = Counter(l)
_, top_freq = counter.most_common(1)[0]
lower_most_common = min(key for key, freq in counter.items() if freq == top_freq)
1 голос
/ 02 августа 2020
In [24]: list = [1,2,3,4,5,5,5,6,6,6,7,7,8,8,8]
    ...:

In [25]: max(sorted(set(list)), key=list.count)
Out[25]: 5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...