Встречается на собеседованиях • сегодня
Какие знаешь базовые оптимизации
- Использование генераторов вместо списков для экономии памяти, особенно при работе с большими данными.
python
# Плохо: создает список в памяти
squares = [x**2 for x in range(1000000)]
# Лучше: генератор
squares_gen = (x**2 for x in range(1000000))- Кеширование результатов с помощью
functools.lru_cacheдля повторяющихся вычислений.
python
from functools import lru_cache
@lru_cache(maxsize=128)
def fib(n):
if n < 2:
return n
return fib(n-1) + fib(n-2)
text
3. **Оптимизация строк** через `join()` вместо конкатенации в циклах.
```python
# Плохо: создает много временных строк
result = ""
for s in list_of_strings:
result += s
# Лучше:
result = "".join(list_of_strings)-
Использование
setдля быстрого поиска (O(1) вместо O(n) у списков). -
Локальные переменные в циклах: доступ к ним быстрее, чем к глобальным.
-
Встроенные функции (
map(),filter(),sum()) часто работают быстрее ручных аналогов. -
Избегание
+для immutable объектов (например, кортежи или строки), так как создается новый объект. -
Профилирование кода через
cProfileилиtimeitдля точного выявления узких мест.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы