Встречается на 1% собеседований по Python

Какие структуры данных выберешь, если требуется быстрый поиск

Для быстрого поиска в Python оптимальны:

  1. Множества (set) и словари (dict) — используют хеш-таблицы, поиск за O(1).
    Пример:
    python
    data = {1, 2, 3}  # set
    if 2 in data:  # O(1)
        print("Found")
  1. Сортированные списки с бинарным поиском — O(log n).
    Пример:
    python
    import bisect
    data = [1, 2, 3, 4]
    idx = bisect.bisect_left(data, 3)  # O(log n)

Выбор зависит от контекста:

  • set/dict — если важен порядок вставки (Python 3.7+ сохраняют его) и частые проверки наличия.
  • bisect — если данные уже отсортированы или нужен доступ по индексу.

Для сложных структур (например, поиск по диапазону) используют двоичные деревья (библиотеки bintrees, sortedcontainers).

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы