Skip to main content
 首页 » 编程设计

python之python中有枚举器查找方法吗

2025年05月04日15Renyi-Fan

在 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)