读书人

一个python有关问题

发布时间: 2013-07-01 12:33:04 作者: rapoo

一个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)

读书人网 >perl python

热点推荐