Используйте max(numbers, default=None). Встроенная функция вернёт наибольшее значение за один проход, а для пустого списка — явно заданный None без исключения.
Функция, возвращающая наибольшее значение из списка
Используйте max(numbers, default=None). Встроенная функция вернёт наибольшее значение за один проход, а для пустого списка — явно заданный None без исключения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Реализуйте функцию, которая принимает список чисел и возвращает максимальное из них. Если список пустой, функция должна вернуть None.
Ответ
Используйте max(numbers, default=None). Встроенная функция вернёт наибольшее значение за один проход, а для пустого списка — явно заданный None без исключения.
Реализация:
def find_maximum(numbers):
return max(numbers, default=None)
Для [5, 12, 8] результат 12, для [-5, -2] — -2, для [] — None. Нельзя начинать ручной поиск с максимума 0: это нарушит работу на отрицательных числах. Время O(n), дополнительная память O(1). Предполагаются взаимно сравнимые числовые значения; обработку NaN нужно задавать отдельно, если такие значения допускаются.