Нет такой вещи, но мне нравится ваше мышление, поэтому давайте построим на этом:
Если у вас есть только один индекс и вы создаете много запросов к нему, почему бы не поддерживать set()
или dict()
рядом с этим индексом?
numbers = [1,2,3]
unique_nunbers = set(numbers)
if 4 in unique_nunbers:
return numbers.index(4)
Опция Dict:
numbers = [1,2,3]
unique_nunbers = dict(zip(numbers, range(len(numbers))))
index = unique_nunbers.get(4)
if index is None:
# Do stuff
Ищет внутри наборов и диктует O (1), таким образом, 4 in unique_numbers
почти ничего не стоит. Итерирование по всему списку на случай, если что-то не существует, является пустой операцией O (n).
Таким образом, вы получаете более эффективный код, с лучшим алгоритмом и без исключений!
Имейте в виду, что то же самое нельзя сказать о 4 in numbers
, поскольку оно повторяется по всему списку.