我想知道是否讨论过 - 在设计Python时 - all
和any
是否应分别实现为and
和or
的链?不这样做的理由是什么。
现在all
和any
等同于:
def all(iterable):
for element in iterable:
if not element:
return False
return True
def any(iterable):
for element in iterable:
if element:
return True
return False
我想知道为什么它没有实现如下:
def all(iterable): # alternative idea
result = True
for element in iterable:
if not element:
return element
else:
result = element
return result
def any(iterable): # alternative idea
result = False
for element in iterable:
if element:
return element
else:
result = element
return result
这意味着如果您向all
提供类似all([a,b,c,d,e])
的内容,则相当于:
(True and) a and b and c and d and e
如果您将相同的列表提供给any([a,b,c,d,e])
,则结果将等于:
(False or) a or b or c or d or e
我在括号中放置(True and
)和(False or)
,因为这些是链中的“隐式”元素。