如果min(list)引发ValueError,如何返回0或其他内容?

时间:2015-04-13 02:45:19

标签: python

我有一个列表值my_list,我希望得到它的最小值:

min_value = min(my_list)

如果my_list不为空,则可以正常工作,但如果列表为空,则会引发 ValueError

如果my_list为空,并且 ValueError 被捕,我无法以非常 Pythonic 方式返回其他内容if(如下所示):

if my_list:
    min_value = min(my_list)

我想要一个单行的东西。类似的东西:

min_value = min(my_list) or another_value

3 个答案:

答案 0 :(得分:5)

在Python 3.4中,您可以使用new default keyword

min_value = min(my_list, default=0)

在旧版本中,可以使用简单的conditional expression

min_value = min(my_list) if my_list else 0  # Empty lists evaluate to False

答案 1 :(得分:4)

一种方法是min(my_list or [0])

答案 2 :(得分:0)

只需这样做:

my_list = []
another_value = 555
print min(my_list) if my_list else another_value