是否有任何聪明的内置函数或某些内容会为下面的1
示例返回min()
? (我敢打赌,有一个坚实的理由不返回任何东西,但在我的特殊情况下,我需要它忽略None
值非常糟糕!)
>>> max([None, 1,2])
2
>>> min([None, 1,2])
>>>
答案 0 :(得分:39)
None
正在退回
>>> print min([None, 1,2])
None
>>> None < 1
True
如果您想返回1
,则需要过滤掉None
:
>>> L = [None, 1, 2]
>>> min(x for x in L if x is not None)
1
答案 1 :(得分:3)
使用生成器表达式:
>>> min(value for value in [None,1,2] if value is not None)
1
最终,您可以使用过滤器:
>>> min(filter(lambda x: x is not None, [None,1,2]))
1
答案 2 :(得分:0)
使min()无穷大:
def noneIsInfinite(value):
if value is None:
return float("inf")
else:
return value
>>> print min([1,2,None], key=noneIsInfinite)
1
注意:这种方法也适用于python 3。