Почему бы вам не поставить все в цикл? кажется мне намного чище.
bounds = [20,30,50,65,80]
n = len(bounds)
for i, bound in enumerate(bounds):
if lp < bound:
return lp*matrix.t1[i] + matrix.t2[i]
return lp * matrix.t1[n] + matrix.t2[n]
Edit:
Так что я был немного слеп, не видя, что индексы не были связаны с циклом. Вы все еще можете выбрать такое решение, просто ведя список индексов
bounds = [20,30,50,65,80]
idxs = [(0,0), (1,2), (3,3), (4,4), (5,5), (6,6)]
for i,bound in enumerate(bounds):
if lp<bound:
return lp*matrix.t1[idxs[i][0]] + matrix.t2[idxs[i][1]]
return lp*matrix.t1[idxs[-1][0]] + matrix.t2[idxs[-1][1]]
Что может быть полезно, если у вас есть больше дел ... В противном случае я бы просто пошел с другим ответом по причинам простоты.