对于下面的min()
示例,有没有什么聪明的内置函数或者可以返回1
的东西?(我打赌它有充分的理由不返回任何内容,但在我的特殊情况下,我非常需要它忽略None
的值!)
>>> max([None, 1,2])
2
>>> min([None, 1,2])
>>>
发布于 2010-02-19 18:16:54
正在返回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
发布于 2010-02-19 18:18:50
使用生成器表达式:
>>> min(value for value in [None,1,2] if value is not None)
1
最后,您可以使用filter:
>>> min(filter(lambda x: x is not None, [None,1,2]))
1
发布于 2019-07-01 01:38:07
将min()设为无无穷大:
def noneIsInfinite(value):
if value is None:
return float("inf")
else:
return value
>>> print min([1,2,None], key=noneIsInfinite)
1
注意:这种方法也适用于python3。
https://stackoverflow.com/questions/2295461
复制相似问题