and
并or
返回他们评估的最后一个元素,但为什么 Python 的内置函数不any
呢?
我的意思是这样实现自己很容易,但我仍然想知道为什么。
def any(l):
for x in l:
if x:
return x
return x
编辑:
要添加到下面的答案,这里是来自同一个邮件列表的实际引用 ye 强大的皇帝在这个问题上:
是否始终返回 True 和 False 或第一个失败/传递元素?我在写博客之前也玩过这个,并意识到最终情况(如果序列为空或所有元素都未通过测试)永远无法令人满意地工作:如果参数是布尔值的可迭代,则选择 None 感觉很奇怪,并且如果参数是非布尔对象的可迭代对象,则选择 False 感觉很奇怪。
Guido van Rossum(主页: http: //www.python.org/~guido/)