是否有任何聪明的内置功能或可以返回的东西 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。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top