Ответ
Наиболее быстрый поиск по ключу обеспечивает словарь (dict) или множество (set), так как они реализованы на основе хэш-таблиц, что дает среднюю сложность O(1).
Почему?
- dict и set используют хэширование ключей для прямого доступа к ячейке памяти.
- list или tuple требуют последовательного перебора (O(n)) или бинарного поиска (O(log n)), если отсортированы.
Пример:
# Быстрый поиск в dict и set
my_dict = {'a': 1, 'b': 2, 'c': 3}
value = my_dict.get('b') # O(1) - прямое обращение по хэшу
my_set = {1, 2, 3, 4, 5}
exists = 3 in my_set # O(1) - проверка по хэшу
# Медленный поиск в list (в худшем случае)
my_list = [1, 2, 3, 4, 5]
exists = 3 in my_list # O(n) - линейный поиск
Важно: Сложность O(1) — средняя; в худшем случае (коллизии хэшей) она может деградировать до O(n), но на практике это редкость при хорошей хэш-функции.