Подсчитайте частоты и верните наиболее частое число. Для пустого списка и нескольких мод нужно явно определить поведение функции.
задачка на моду
Подсчитайте частоты и верните наиболее частое число. Для пустого списка и нескольких мод нужно явно определить поведение функции.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
задачка на моду
Есть список чисел. Напишите функцию, которая находит моду этого списка.
find_mode([1, 2, 3, 3, 4, 5]) #> 3
Ответ
Подсчитайте частоты и верните наиболее частое число. Для пустого списка и нескольких мод нужно явно определить поведение функции.
Вариант возвращает первую встретившуюся моду, а для пустого списка — None:
from collections import Counter
def find_mode(values):
if not values:
return None
counts = Counter(values)
return max(counts, key=counts.get)
print(find_mode([1, 2, 3, 3, 4, 5])) # 3
В современных Python Counter сохраняет порядок первого появления ключей. Время — O(n), дополнительная память — O(k), где k — число разных значений. Если нужны все моды, выберите все ключи с максимальной частотой.