当前位置: 首页 > 面试题库 >

检查Python中是否存在切片列表

贝镜
2023-03-14
问题内容

我想编写一个确定子列表是否存在于较大列表中的函数。

list1 = [1,0,1,1,1,0,0]
list2 = [1,0,1,0,1,0,1]

#Should return true
sublistExists(list1, [1,1,1])

#Should return false
sublistExists(list2, [1,1,1])

有Python函数可以做到这一点吗?


问题答案:

如果您确定输入内容仅包含数字0和1,那么可以转换为字符串:

def sublistExists(list1, list2):
    return ''.join(map(str, list2)) in ''.join(map(str, list1))

这样会创建两个字符串,因此它不是最有效的解决方案,但是由于它利用了Python中优化的字符串搜索算法,因此对于大多数用途而言可能已经足够好了。

如果效率非常重要,则可以查看适用于列表的Boyer-
Moore
字符串搜索算法。

天真的搜索的最坏情况是O(n * m),但是如果您不能使用转换为字符串技巧并且您不必担心性能,则可能适合使用。



 类似资料:
  • 我需要检查一列是否存在,如果不存在,请添加它。根据我的研究,sqlite似乎不支持是否应该使用语句和case语句。 以下是我目前掌握的情况: 但我得到了一个错误:接近“ALTER”:语法错误。 有什么想法吗?

  • 我需要验证表中是否已经存在列。我的类扩展了CustomTaskChange,因此我的方法接收一个数据库对象作为参数。我可以通过ResultSetObject进行我想要的验证吗?

  • 问题内容: 我经常要检查一个对象是否有成员。一个示例是在函数中创建单例。为此,可以这样使用: 但您也可以这样做: 一种方法比另一种更好吗? 编辑: 添加了…但是,请注意,问题 不 在于如何制作单例,而在于如何检查对象中成员的存在。 编辑: 对于该示例,一种典型用法是: 然后是类型相同的对象,每次相同。并且,通常,该方法被调用多次。 问题答案: 这是两种不同的方法:№1是LBYL(飞跃前先看一下),

  • 问题内容: 我想检查某个网站是否存在,这就是我正在做的事情: 如果该页面不存在(错误402或其他任何错误),我可以在该行中做什么以确保正在读取的页面退出? 问题答案: 您可以使用HEAD请求而不是GET。它将仅下载标题,而不下载内容。然后,您可以从标题中检查响应状态。 或者你可以使用 或者你可以使用

  • 问题内容: 我想知道是否有一种方法可以检查Redis列表中是否已存在密钥? 我不能使用集合,因为我不想强制唯一性,但是我确实希望能够检查字符串是否确实存在。 问题答案: 您的选择如下: 如果发现并使用并替换它。 与您的个人保持独立 循环浏览直到找到项目或到达末尾。 Redis列表是作为http://en.wikipedia.org/wiki/Linked_list实现的,因此存在局限性。 我认为您

  • 我试图在存储过程中测试序列是否已经存在。 我已经尝试了上面代码片段的几个变体,但没有运气。我一定是给谷歌错误的术语,因为我似乎找不到任何关于这个主题的东西。任何帮助都很感激!