在 Ruby 中,您可以使用 #find 方法在找到数组中符合特定条件的第一个实例后进行短路。
arr = [5,6,7]
arr.find { |n| n % 2 == 0 } #=> 6
在 Python 中有对应的东西吗?还是需要使用 for 循环?我试图避免这种情况:
arr = [5,6,7]
for n in arr:
return n if n % 2 == 0
也许有生成器的解决方案?或者 for 循环可能只是唯一的 pythonic 解决方案。
请您参考如下方法:
Perhaps there's a solution with generators?
是的,您可以使用生成器并在其上调用next。返回符合条件的第一个项目,如果没有则引发 StopIteration 错误:
next(n for n in arr if n % 2 == 0)
Python 还允许您传递默认返回值,以防没有任何项目符合过滤条件从而抑制错误:
next((n for n in arr if n % 2 == 0), None)
