在 Python 中确定子列表的存在
当前的任务涉及创建一个函数来确定较大列表中是否存在子列表。考虑以下示例:
<code class="python">list1 = [1,0,1,1,1,0,0] list2 = [1,0,1,0,1,0,1] # Expected results: sublistExists(list1, [1,1,1]) == True sublistExists(list2, [1,1,1]) == False</code>
解决方案:
利用 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) 并将其子列表(长度等于子列表的长度 n)与给定的子列表 (sublst) 进行比较。如果找到匹配项,该函数将返回 True。否则,在 O(m*n) 次操作之后(其中 m 是 lst 的长度,n 是 sublst 的长度),该函数将返回 False。
这种方法利用了 Python 高效的列表切片和函数式编程构造,提供了一种简洁有效的方法来确定子列表的存在。
以上是以下是一些问题格式的标题选项,抓住了文章的精髓: * 如何在Python中高效判断子列表是否存在? * Python 子列表检测:使用的简洁解决方案的详细内容。更多信息请关注PHP中文网其他相关文章!