一个python问题

eastred 2013-05-05 11:10:59
假设有一个简单功能,在一个列表中对每个元素调用一个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,
而且感觉上应该有个更加好的写法。

...全文
96 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
eastred 2013-05-05
  • 打赏
  • 举报
回复
啊,越来any是lazy的,谢谢楼上大大
angel_su 2013-05-05
  • 打赏
  • 举报
回复
any(foo(x) for x in aList)

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧