Python的一个答案是:Do其中任何一个输入都会为此函数返回True



目标:是否有一个内置的Python函数(或一个线性函数(将向函数提交参数,但仅在函数首次返回True之前?我希望能够回答的问题

"这些输入中的是否有返回此函数的True?">

当使用这些输入时,我并不特别关心函数的结果。

如果传递的iterable项中的任何一项是True,则any函数返回Truemap函数将参数应用于函数,并返回所有这些函数调用的结果。

所以我在寻找介于两者之间的东西。any只适用于iterable,因此与函数无关(除非我想map函数的所有参数(;而CCD_ 11并不是我想要的,因为它对所有输入执行函数。

any是"惰性"的,所以一旦iterable的第一个元素求值为Truereturn也会是"惰性的"。然而,在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)

相关内容

最新更新