Python没有可以传递lambda的方法“all”?或者我错过了什么?我知道列表理解,但是这个怎么样?
res = map(....., [True, False, False, ......very long])
# how to check that all items in "res" are True using a functional approach?
是的,有办法检查,但没有功能方法?我想做点什么:
res2 = all(lambda x: x == True, res)
答案 0 :(得分:1)
没有内置功能,但您可以通过map
与all
合作轻松自行编写:
def all_function(predicate, iterable):
return all(map(predicate, iterable))
答案 1 :(得分:1)
不,没有<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Button1"
android:theme="@style/MyColorButton"/>
实现接受回调,因为可以使用生成器表达式表示相同。使用更复杂的“检查所有值是否超过5”示例以获得更好的样本:
all
这里没有特定的需要来提供res = map(..)
if all(x > 5 for x in res):
print('Yes!')
的替代实现,因为这种模式可以处理你想要的任何东西,而Python的咒语是有一个明显的方法可以做的东西。
答案 2 :(得分:0)
all(function(x) for x in res)
是使用all()
函数的正确方法,但如果您坚持使用“功能方式”,请尝试filter
:
list(filter(lambda x: x == True, res)) == res