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

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

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


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功能可以做到这一点?


四季花海
浏览 508回答 3
3回答

暮色呼如

让我们有点功能,好吗?:)def contains_sublist(lst, sublst):     n = len(sublst)     return any((sublst == lst[i:i+n]) for i in xrange(len(lst)-n+1))请注意,any()将在lst内的第一个匹配停止 - 如果没有匹配则失败,在O(m * n)操作之后停止

桃花长相依

没有我所知道的功能def sublistExists(list, sublist):     for i in range(len(list)-len(sublist)+1):         if sublist == list[i:i+len(sublist)]:             return True #return position (i) if you wish     return False #or -1正如马克所说,这不是最有效的搜索(它是O(n * m))。可以通过与字符串搜索非常相似的方式来处理此问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python