目标:是否有一个内置的Python函数(或一个线性函数(将向函数提交参数,但仅在函数首次返回True
之前?我希望能够回答的问题
"这些输入中的是否有返回此函数的
True
?">
当使用这些输入时,我并不特别关心函数的结果。
如果传递的iterable
项中的任何一项是True
,则any
函数返回True
。map
函数将参数应用于函数,并返回所有这些函数调用的结果。
所以我在寻找介于两者之间的东西。any
只适用于iterable
,因此与函数无关(除非我想map
函数的所有参数(;而CCD_ 11并不是我想要的,因为它对所有输入执行函数。
any
是"惰性"的,所以一旦iterable
的第一个元素求值为True
,return
也会是"惰性的"。然而,在Python2.x*中,map
构建了一个结果列表,在返回之前将function
应用于iterable
中的所有内容。
不过,还有一种替代方法:itertools.imap
,它返回一个迭代器而不是列表,恢复惰性求值。一旦你:
from itertools import imap
你的一句话是:
any(imap(function, iterable))
*请注意,map
已经在Python 3.x中返回了一个迭代器,因此itertools.imap
不再可用
使用理解:
any(func(arg) for arg in args)