一个python问题
假设有一个简单功能,在一个列表中对每个元素调用一个foo,只要成功就结束:
for x in aList:
if foo(x):
break
请问下用函数式编程的方法应该怎么写?
自己想过处理的:
1. 用 map(foo, aList) 或者 [foo(x) for x in aList]
这样的话会把每个元素都调用一遍,效率太低
2. (x for x in aList if foo(x)).next()
这样不会有1的问题,但是需要加一个try-except,
而且感觉上应该有个更加好的写法。
[解决办法]
any(foo(x) for x in aList)