看来您想使用范围函数的 step 参数。从文档:
range(start, stop[, step]) 这是一个通用函数,用于创建包含算术级数的列表。它最常用于 for 循环。参数必须是纯整数。如果省略 step 参数,则默认为 1。如果省略 start 参数,则默认为 0。完整形式返回纯整数列表 [start, start + step, start + 2 * step, ...] . 如果step为正,则最后一个元素是最大的start + i * step小于stop;如果 step 为负数,则最后一个元素是最小的 start + i * step 大于 stop。step 不能为零(否则会引发 ValueError)。例子:
>>> range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 11) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(0, 30, 5) [0, 5, 10, 15, 20, 25]
>>> range(0, 10, 3) [0, 3, 6, 9]
>>> range(0, -10, -1) [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> range(0) []
>>> range(1, 0) []
在您获得 [0,2,4] 的情况下,您可以使用:
range(0,6,2)
或者在你的情况下什么时候是一个var:
idx = None
for i in range(len(str1)):
if idx and i < idx:
continue
for j in range(len(str2)):
if str1[i+j] != str2[j]:
break
else:
idx = i+j