and
和or
返回它们评估的最后一个元素,但是为什么Python的内置函数any
不?
我的意思是这样实现自己很容易,但是我仍然想知道为什么。
def any(l):
for x in l:
if x:
return x
return x
编辑:
要添加到下面的答案中,以下是您在该问题上的同一个皇帝的相同邮件列表中的实际报价:
最佳答案
这个问题出现在2005年Python开发人员的邮件列表中,当时Guido Van Rossum建议在python 2.5中添加any
和all
。
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]
实现
any
和all
和responded的Raymond Hettinger专门解决了为什么any
和all
不像and
和or
那样起作用的问题:邮件列表在很大程度上是一致的,使实现保持今天的样子。