範囲関数のステップパラメータを使用したいようです。ドキュメントから:
range(start、stop [、step])これは、等差数列を含むリストを作成するための用途の広い関数です。これは、forループで最もよく使用されます。引数は単純な整数でなければなりません。step引数を省略すると、デフォルトで1になります。start引数を省略すると、デフォルトで0になります。完全な形式は、単純な整数のリストを返します[start、start + step、start + 2 * step、...] 。stepが正の場合、最後の要素は最大の開始+i*停止よりも小さいステップです。stepが負の場合、最後の要素は、stopよりも大きいstart +i*ステップの最小値です。ステップはゼロであってはなりません(そうでない場合、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