这是在 x 大列表中查找 y 列表索引的解决方案
def getsubidx(x, y):
l1, l2 = len(x), len(y)
for i in range(l1):
if x[i:i+l2] == y:
return i
是否可以使用itertools、过滤器或其他工具将其转换为oneliner?
最佳答案
def getsubidx(x, y):
return next(i for i in range(len(x)) if x[i:i+len(y)] == y)
如果不匹配,您可能希望引发错误,否则可以返回 -1
return next((i for i in range(len(x)) if x[i:i+len(y)] == y), -1)
关于Python:在列表第一个行中查找第一个列表的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27650784/