首页  >  文章  >  后端开发  >  如何有效地确定 Python 列表中子列表的存在?

如何有效地确定 Python 列表中子列表的存在?

Linda Hamilton
Linda Hamilton原创
2024-10-26 18:01:03252浏览

How to Efficiently Determine Sublist Presence in a Python List?

确定 Python 列表中是否存在子列表

要检查子列表是否存在于较大列表中,可以利用函数式编程的强大功能在Python中。这是一个完成此任务的简洁函数:

<code class="python">def contains_sublist(lst, sublst):
    n = len(sublst)
    return any((sublst == lst[i:i+n]) for i in range(len(lst)-n+1))</code>

该函数的工作原理是迭代较大的列表 lst,从索引 i 开始,并将长度为 n(子列表的长度)的切片与子列表进行比较子列表。如果这些切片中的任何一个与 sublst 匹配,则该函数返回 True。否则,它返回 False。

考虑以下示例:

<code class="python">lst1 = [1,0,1,1,1,0,0]
lst2 = [1,0,1,0,1,0,1]

sublistExists(lst1, [1,1,1]) == True
sublistExists(lst2, [1,1,1]) == False</code>

该函数的运行时间复杂度为 O(m*n),其中 m 是较大列表的长度,n 是是子列表的长度。它利用any()函数在第一次匹配时有效退出,确保计算效率。

以上是如何有效地确定 Python 列表中子列表的存在?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn