python - 仅当连续时才在另一个列表中查找列表项的索引
问题描述
我之前问过这个问题,并提出了以下建议: 如何测试一个列表是否包含另一个列表? 但是,以上并没有回答我的问题。
listA=["mango","orange","guava","mango","cherry","pawpaw"]
listB=["mango","cherry","pawpaw"]
在上面的列表 A 和 B 中,为了获取 listA 中 listB 元素的索引,我希望listA"mango","cherry"
和"pawpaw"
中的索引[3,4,5]
忽略第一个"mango"
,因为它不是连续序列的一部分。
解决方案
保持一个滑动窗口的长度等于listB
for i in range(len(listA)- len(listB) + 1):
if listA[i:i+len(listB)] == listB:
print([k for k in range(i,i+len(listB))])
推荐阅读
- tmux - 是否有创建新会话的 tmux 快捷方式?
- r - 用不同类型的缺失替换一系列变量中的 NA
- ios - ObservableObject 正在更新所有视图并导致 SwiftUI 中的菜单关闭
- php - 为什么 DateTimeZone :: listAbbreviations() 和 DateTimeZone :: listIdentifiers () 之间存在不同的时区
- r - 根据条件使一些样本名称唯一
- c# - Cosmos DB 加快读取速度
- javascript - Uncaught UnknownError:无法在“MediaRecorder”上执行“start”:启动 MediaRecorder 时出错
- azure-devops - 从测试计划运行自动化测试给出错误未找到测试源
- sql - 使用项目值作为选择代码的一部分
- django - django-datatable-view==0.9.0 Django 3.1.3:ImportError:无法导入名称'FieldDoesNotExist'