首页 > 后端开发 > Python教程 > 如何高效地查找Python列表中的第一个匹配项?

如何高效地查找Python列表中的第一个匹配项?

DDD
发布: 2024-12-07 19:26:20
原创
223 人浏览过

How to Efficiently Find the First Matching Item in a Python List?

从列表中获取第一个与条件匹配的项目,而不处理整个列表

从潜在广泛的列表中获取满足特定条件的第一个元素是常见的任务。虽然像您这样的自定义函数可以实现此目的,但 Python 中可能内置了更有效的替代方案。

Python 2.6 和 Python 3:

对于这些版本,接下来考虑内置函数产生以下两种方法:

  1. 提高StopIteration:

    next(x for x in the_iterable if x > 3)
    登录后复制
  2. 返回默认值(例如 None):

    next((x for x in the_iterable if x > 3), default_value)
    登录后复制

Python

注意:以下解决方案比 Python 2.6 的效率低,因为它们处理整个列表。

  1. 下一个方法:

    .next()
    登录后复制

    如果没有元素满足条件,则立即引发 StopIteration .

  2. 自定义函数(根据您的初始提案):

    def first(the_iterable, condition = lambda x: True):
        for i in the_iterable:
            if condition(i):
                return i
    登录后复制
  3. itertools:

    from itertools import ifilter, islice
    first_item = next(ifilter(lambda x: x > 3, the_iterable))
    登录后复制
  4. 带中断的循环:

    for item in the_iterable:
        if condition(item):
            break
    first_item = item
    登录后复制
  5. 尝试/除外停止迭代:

    try:
        first_item = next(x for x in the_iterable if condition(x))
    except StopIteration:
        return None
    登录后复制

以上是如何高效地查找Python列表中的第一个匹配项?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板