andor返回它们评估的最后一个元素,但是为什么Python的内置函数any不?

我的意思是这样实现自己很容易,但是我仍然想知道为什么。

def any(l):
    for x in l:
        if x:
            return x
    return x

编辑:

要添加到下面的答案中,以下是您在该问题上的同一个皇帝的相同邮件列表中的实际报价:

最佳答案

这个问题出现在2005年Python开发人员的邮件列表中,当时Guido Van Rossum建议在python 2.5中添加anyall

Bill Janssen requested被实现为

def any(S):
    for x in S:
        if x:
            return x
    return S[-1]

def all(S):
    for x in S:
        if not x:
            return x
    return S[-1]

实现anyallresponded的Raymond Hettinger专门解决了为什么anyall不像andor那样起作用的问题:



邮件列表在很大程度上是一致的,使实现保持今天的样子。

10-06 05:22
查看更多