Используя стандартный синтаксис, который поставляет Python, чтобы проверить, если элемент находится в списке:Как Python проверяет, существует ли элемент в списке?
if someElement in someList:
Что фактически выполняется здесь? Является ли Python зацикливанием по каждому индексу и проверяет на равенство или что-то более сложное реализуется?
Программа, которую я пишу, работает очень медленно. Никакая математика не выполняется, но она в значительной степени зависит от проверки, существуют ли элементы в длинных списках. Есть ли более быстрое решение?
SOLVED: Проверка того, что элемент находится в списке, совпадает с прохождением каждого элемента и проверкой равенства. Однако проверка элемента в наборе значительно быстрее, поскольку элементы хэшируются.
Даже если элементы в вашем списке рассосаны (в моем случае, в других списках), все равно стоит преобразовать их в строку, сохранить в наборе и преобразовать обратно, когда это необходимо. Сначала я подумал, что это громоздко и снизит производительность. Тем не менее, это буквально позволило моей программе закончить в течение нескольких минут, когда это заняло бы несколько дней назад.
Не стоит недооценивать скорость проверки предметов в наборе.
https://wiki.python.org/moin/TimeComplexity – paxdiablo