为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

四季花海 2019-08-05 15:21:28
检查Python中是否存在切片列表我想编写一个函数来确定子列表是否存在于更大的列表中。list1 = [1,0,1,1,1,0,0]list2 = [1,0,1,0,1,0,1]#Should return truesublistExists(list1, [1,1,1])#Should return falsesublistExists(list2, [1,1,1])有没有Python功能可以做到这一点?
查看完整描述

3 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

让我们有点功能,好吗?:)

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)操作之后停止


查看完整回答
反对 回复 2019-08-05
?
桃花长相依

TA贡献1860条经验 获得超8个赞

没有我所知道的功能

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))。可以通过与字符串搜索非常相似的方式来处理此问题。


查看完整回答
反对 回复 2019-08-05
  • 3 回答
  • 0 关注
  • 507 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信