确定 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中文网其他相关文章!