我有一个列表列表和另一个单独的列表,我需要检查第二个列表的项目是否在列表列表的任何列表中以相同的顺序,并返回这些子列表的索引
例如:
lst=[['ahmad','a',5],['ahmad','b',6],['ahmad','x',4],['Emme','b',5],['Emme','b',4]]
和lst_2=['ahmad','b']
,lst_3= ['b','ahmad']
预期结果:
对于lstè2:
True
1
至于lst\ U 3:
False
我尝试了以下行来检查独立列表是否在嵌套列表中,但结果中没有考虑顺序:
any(set(lst_2) <= set(l) for l in lst)
True
any(set(lst_3) <= set(l) for l in lst)
True
使用
set
肯定不会保留顺序,因为集合是无序的相反,我建议遍历该列表,并将子列表视为一个堆栈,每次有匹配项时都从中弹出一个元素。如果堆栈在任何时候都是空的,那么就得到一个有序的子列表
使用
deque
可以从O(1)中的sublst
左边弹出代码
示例
恢复子列表索引
然后可以使用上面的函数和列表理解,并
enumerate
恢复相应的索引相关问题 更多 >
编程相关推荐