Самый быстрый способ поиска в списке в python

Когда вы выполняете что-то вроде "test" в , где a - это список, выполняет ли python последовательный поиск в list или создает представление хеш-таблицы для оптимизировать поиск? В приложении, которое мне нужно, я буду выполнять много поисков по списку, поэтому было бы лучше сделать что-то вроде b = set (a) , а затем "test" в b ? Также обратите внимание, что список значений, который у меня будет, не будет содержать повторяющихся данных, и меня не волнует порядок их расположения; Мне просто нужно проверить наличие значения.

24
задан blcArmadillo 13 May 2011 в 03:45
поделиться

1 ответ

Я думаю, что было бы лучше пойти с установленной реализацией. Я точно знаю, что наборы имеют O (1) время поиска. Я думаю, что списки занимают O (N) время поиска. Но даже если списки также являются O (1), вы ничего не потеряете, переключившись на наборы.

Кроме того, наборы не допускают дублирования значений. Это также сделает вашу программу немного более эффективной в использовании памяти

1
ответ дан 15 October 2019 в 22:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: