Подтвердить что ты не робот

Управление пустым списком/недопустимым вводом при поиске максимального/минимального значения списка (Python)

Я нахожу максимальное значение и минимальное значение списка, используя max(list) и min(list) в Python. Однако мне интересно, как управлять пустыми списками.

Например, если список является пустым списком [], программа поднимает 'ValueError: min() arg is an empty sequence', но я хотел бы знать, как заставить программу просто печатать 'empty list or invalid input' вместо просто сбой. Как управлять этими ошибками?

4b9b3361

Ответ 1

Поймать и обработать исключение.

try:
    print(min(l), max(l))
except (ValueError, TypeError):
    print('empty list or invalid input')

ValueError возникает с пустой последовательностью. TypeError возникает, когда последовательность содержит неупорядоченные типы.

Ответ 2

В Python 3.4 к функциям min и max добавлен аргумент ключевого слова default. Это позволяет вернуть значение вашего выбора, если функции используются в пустом списке (или другом итерируемом объекте). Например:

>>> min([], default='no elements')
'no elements'

>>> max((), default=999)
999

>>> max([1, 7, 3], default=999) # 999 is not returned unless iterable is empty
7

Если ключевое слово default не задано, вместо него создается ValueError.

Ответ 3

Указание значения по умолчанию в более ранних версиях Python:

max(list or [0])
max(list or ['empty list'])