2024-10-01 09:28:36 发布
网友
下面是在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、filter或其他工具将其转换为一行呢?你知道吗
def getsubidx(x, y): l1, l2 = len(x), len(y) for i in range(l1-l2): here it should be l1-l2 if x[i:i+l2] == y: here you may get list out of index return i
一行:
def getsubidx(x, y): return [i for i in range(len(x)-len(y)) if x[i:i+len(y)] == y]
Is it possible to transform this to oneliner using itertools, filter or something else?
这里是“其他东西”,您可以使用^{} function:
index_of_y_in_x = index(y, x)
def getsubidx(x, y): return next(i for i in range(len(x)) if x[i:i+len(y)] == y)
如果不匹配,您可能希望引发错误,如果不匹配,您可以返回-1
-1
return next((i for i in range(len(x)) if x[i:i+len(y)] == y), -1)
一行:
这里是“其他东西”,您可以使用^{} function :
如果不匹配,您可能希望引发错误,如果不匹配,您可以返回
-1
相关问题 更多 >
编程相关推荐