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

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

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

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

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

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

В 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 .

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

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