是否有任何聪明的内置函数或将返回1
以下min()
示例的内容?(我敢打赌它不返回任何东西是有充分理由的,但在我的特殊情况下,我需要它来忽略None
非常糟糕的值!)
>>> max([None, 1,2])
2
>>> min([None, 1,2])
>>>
是否有任何聪明的内置函数或将返回1
以下min()
示例的内容?(我敢打赌它不返回任何东西是有充分理由的,但在我的特殊情况下,我需要它来忽略None
非常糟糕的值!)
>>> max([None, 1,2])
2
>>> min([None, 1,2])
>>>
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
使用生成器表达式:
>>> 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
使 min() 的 None 无限:
def noneIsInfinite(value):
if value is None:
return float("inf")
else:
return value
>>> print min([1,2,None], key=noneIsInfinite)
1
注意:这种方法也适用于 python 3。