查找列表中的排队元素

时间:2014-12-07 20:33:58

标签: python list

如何在列表(list1)中有效地查找排队元素(list2)?

E.g:

list1 = ['a', 'b', 'c', 'd', 'e', 'f']
list2 = ['d', 'e']

在这种情况下,由于匹配,索引将为3。

实际数据是这样的字符串(实际上,字面上,所有空格都在那里),我打算拆分,并删除空格:

  +--head (1)                                                                          
  |  +--title (1)                                                                      
  |  +--meta (3)                                                                       
  |  +--link (14)                                                                      
  |  +--script (21)                                                                    
  |  +--comment (3)                                                                    
  |  +--noscript (1)                                                                   
  |     +--iframe (1) 

我正在尝试匹配:

+--link (14)                                                                      
+--script (21)

在真实数据中,索引将在+--link开始的位置。

2 个答案:

答案 0 :(得分:1)

试试这个。也许会工作正常。

def get_sublist_index(list1, list2):
    l1, l2 = len(list1), len(list2)
    for i in range(l1-l2):
        if list1[i:i+l2] == list2:
            return i

答案 1 :(得分:0)

如果您想要“+ - link”开始的索引,您只需使用以下内容:

>>> len(s.split('+--link')[0])
269

首先根据+--link拆分字符串,然后第一个切片的长度是'+ - link'开始的位置的索引!