Встречается на 1% собеседований по Python
Как получить O(1) при обращении к элементу по ключу
В Python словарь (dict) обеспечивает O(1) среднюю сложность доступа к элементу по ключу благодаря хеш-таблице. Хеш-функция преобразует ключ в индекс, по которому значение хранится в памяти.
Пример:
python
my_dict = {'a': 1, 'b': 2, 'c': 3}
value = my_dict['b'] # O(1) - быстрое получение значения по ключуВажные нюансы:
- Ключ должен быть хешируемым (неизменяемым типом)
- Коллизии хешей могут немного снизить производительность
- В худшем случае (при многих коллизиях) сложность может деградировать до O(n)
Для пользовательских объектов нужно правильно реализовать методы __hash__ и __eq__:
python
class User:
def __init__(self, id):
self.id = id
def __hash__(self):
return hash(self.id)
def __eq__(self, other):
return self.id == other.id
users = {User(1): 'Alice', User(2): 'Bob'}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы