列出最少的python?
-
21-09-2019 - |
题
是否有任何聪明的内置功能或可以返回的东西 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
最小无限():
def noneIsInfinite(value):
if value is None:
return float("inf")
else:
return value
>>> print min([1,2,None], key=noneIsInfinite)
1
注意:此方法也适用于Python 3。
不隶属于 StackOverflow