Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
21 Май 2024
2 мин
823

Быстрый поиск значения в большом списке в Python

Иногда возникает ситуация, когда необходимо проверить, содержится ли определенное значение в большом списке. Возьмем, к примеру, список, состоящий

Иногда возникает ситуация, когда необходимо проверить, содержится ли определенное значение в большом списке. Возьмем, к примеру, список, состоящий из миллиона случайных чисел, и нам нужно узнать, есть ли в этом списке число 7.

import random
my_list = [random.randint(1, 10) for _ in range(1000000)]

Самый очевидный и простой способ проверить наличие элемента в списке — использовать оператор in.

if 7 in my_list:
    print("Найдено")
else:
    print("Не найдено")

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

Более быстрым решением может быть предварительное преобразование списка в структуру данных set, которая обеспечивает быстрый поиск за счет использования хэш-таблиц. Но стоит учесть, что преобразование списка в множество (set) также требует времени.

my_set = set(my_list)

if 7 in my_set:
    print("Найдено")
else:
    print("Не найдено")

Если поиск будет выполняться не один раз, а многократно, то преобразование списка в множество (set) будет оправдано, поскольку время на создание set затратится один раз, а каждый следующий поиск будет выполняться гораздо быстрее.

Таким образом, для проверки наличия значения в большом списке рекомендуется использовать структуру данных set, особенно если планируется многократный поиск. Однако, если поиск производится редко или только один раз, то можно воспользоваться оператором in.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий