我在Python中使用max(list)
和min(list)
找到列表的最大值和最小值。但是,我想知道如何管理空列表。
例如,如果列表是空列表[]
,程序会引发'ValueError: min() arg is an empty sequence'
,但我想知道如何使程序只打印'empty list or invalid input'
而不是崩溃。如何管理这些错误?
答案 0 :(得分:61)
在Python 3.4中,default
和min
函数添加了max
关键字参数。如果函数用于空列表(或其他可迭代对象),则允许返回您选择的值。例如:
>>> 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
。
答案 1 :(得分:44)
在早期版本的Python中指定默认值:
max(lst or [0])
max(lst or ['empty list'])
答案 2 :(得分:11)
抓住并处理异常。
try:
print(min(l), max(l))
except (ValueError, TypeError):
print('empty list or invalid input')
ValueError
以空序列引发。当序列包含不可共享的类型时,会引发TypeError
。