Python 在列表中搜索列表

Python 在列表中搜索列表,python,Python,假设我有一张清单: D = [str1, str2, str3, str4, str5, str6, ... str100] 我想用[str4 str5]作为关键字搜索列表,并返回关键字最后一个元素的索引。在这种情况下,我想返回4,因为str5是我的关键字中的最后一个元素,它在搜索列表中的索引是4,即D 有什么有效的方法可以做到这一点吗?我曾想过使用for循环,但这需要太多时间,因为我有一个非常大的列表。列表理解是一种解决方案吗 编辑: 为了回答Ben的问题,我需要将[str4 str5]作为

假设我有一张清单:

D = [str1, str2, str3, str4, str5, str6, ... str100]
我想用
[str4 str5]
作为关键字搜索列表,并返回关键字最后一个元素的索引。在这种情况下,我想返回
4
,因为
str5
是我的关键字中的最后一个元素,它在搜索列表中的索引是4,即
D

有什么有效的方法可以做到这一点吗?我曾想过使用for循环,但这需要太多时间,因为我有一个非常大的列表。列表理解是一种解决方案吗

编辑:


为了回答Ben的问题,我需要将
[str4 str5]
作为一个集合进行搜索,因为我想确保这两个字符串在一起。很有可能,
[str5]
将来可以在前面没有
str4
的情况下单独出现

确定第一个值是否存在,然后确定第二个值是否紧随其后。如果值不存在或值不按顺序存在,则需要应用所需的逻辑

x = ['str4', 'str5']

if d.index(x[0]) + 1 == d.index(x[1]):
    return d.index(x[1])

为什么不直接搜索str5呢?这是通过
D.index(str5)
完成的。如果需要快速查找,则使用了错误的数据结构。我认为给我们更多的上下文会有很大的帮助。因为我需要确保
str4
就在
str5
之前。我想将这两个字符串作为一个集合进行搜索。类似地,查找
str4
的索引,并检查它们是否连续。这将只查找序列的第一个实例。