Manage empty list/invalid input when finding max/min value of list (Python)
In Python 3.4, a default
keyword argument has been added to the min
and max
functions. This allows a value of your choosing to be returned if the functions are used on an empty list (or another iterable object). For example:
>>> min([], default='no elements')'no elements'>>> max((), default=999)999>>> max([1, 7, 3], default=999) # 999 is not returned unless iterable is empty7
If the default
keyword is not given, a ValueError
is raised instead.
Specifying a default in earlier versions of Python:
max(lst or [0])max(lst or ['empty list'])
Catch and handle the exception.
try: print(min(l), max(l))except (ValueError, TypeError): print('empty list or invalid input')
ValueError
is raised with an empty sequence. TypeError
is raised when the sequence contains unorderable types.