Manage empty list/invalid input when finding max/min value of list (Python)

女生的网名这么多〃 提交于 2019-12-04 15:09:14

问题


I'm finding max value and min value of a list by using max(list) and min(list) in Python. However, I wonder how to manage empty lists.

For example if the list is an empty list [], the program raises 'ValueError: min() arg is an empty sequence' but I would like to know how to make the program just print 'empty list or invalid input' instead of just crashing. How to manage those errors?


回答1:


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.




回答2:


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 empty
7

If the default keyword is not given, a ValueError is raised instead.




回答3:


Specifying a default in earlier versions of Python:

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


来源:https://stackoverflow.com/questions/23048944/manage-empty-list-invalid-input-when-finding-max-min-value-of-list-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!