Похоже на говно-код.
Почему бы не использовать словарь вместо целой обоймы elif?
Тот же код, но в несколько строк.
test_list = [15, 250 , 20, 100]
# create dictionary, pipe_diameter: pipe_index
index_dict = {15: 1, 20: 2, 25:3, 50:6, 250: 13,}
# index_list generator. For stable run i converts to inteter with int()
index_list = [index_dict.get(int(i)) for i in test_list]
OUT = index_list
Проблема с типизацией может возникать. Возможно, это баг. Сложно сказать.
Для уверенности я перевожу в цикле диаметр в инт.
Итак: для улучшени кода вместо if я использовал словарь, а вместо цикла – генератор.
Из-за этого улучшилась расширяемость – в словарь можно удобно добавлять новые индексы.
Значительно улучшилась читаемость.