Je trouve la valeur maximale et la valeur minimale d'une liste en utilisant max(list)
et min(list)
en Python. Cependant, je me demande comment gérer les listes vides.
Par exemple, si la liste est une liste vide []
, Le programme lève 'ValueError: min() arg is an empty sequence'
mais je voudrais savoir comment faire pour que le programme imprime simplement 'empty list or invalid input'
Au lieu de simplement planter. Comment gérer ces erreurs?
Saisissez et gérez l'exception.
try:
print(min(l), max(l))
except (ValueError, TypeError):
print('empty list or invalid input')
ValueError
est levé avec une séquence vide. TypeError
est levée lorsque la séquence contient des types non triables.
Dans Python 3.4, un argument de mot clé default
a été ajouté aux fonctions min
et max
. Cela permet à une valeur de votre choix de être retourné si les fonctions sont utilisées sur une liste vide (ou un autre objet itérable). Par exemple:
>>> 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
Si le mot clé default
n'est pas donné, un ValueError
est levé à la place.
Spécification d'une valeur par défaut dans les versions antérieures de Python:
max(lst or [0])
max(lst or ['empty list'])