Встречается на собеседованиях • сегодня
Как получить 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
интервью вопросы и ответы