Я пытаюсь поймать ошибку индекса вне диапазона при следующей попытке, кроме блока.
def getStepList(r, h, d):
x = len(r)-1
y = len(h)-1
list = []
while True:
try:
if x == 0 and y == 0:
break
elif x >= 1 and y >= 1 and d[x][y] == d[x-1][y-1] and r[x-1] == h[y-1]:
x = x - 1
y = y - 1
elif y >= 1 and d[x][y] == d[x][y-1]+1:
#insertion
x = x
y = y - 1
list.append(h[y])
print('insertion')
elif x >= 1 and y >= 1 and d[x][y] == d[x-1][y-1]+1:
#substitution
x = x - 1
y = y - 1
list.append(r[x])
print('substitution')
else:
#deletion
x = x - 1
y = y
list.append(r[x])
print('deletion')
except IndexError:
print('index error')
return list[::-1]
, но он застревает в бесконечном цикле.Я хочу, чтобы он игнорировал его и продолжал добавлять следующие экземпляры.(Для справки это кусок кода, который использует метрику другой функции, чтобы определить, какие слова были вставлены, заменены или удалены при каждой операции).
Я чувствую, что должен это знать, но, честно говоря, я застрял.