Встречается на собеседованиях • сегодня

Какие знаешь базовые оптимизации

  1. Использование генераторов вместо списков для экономии памяти, особенно при работе с большими данными.
python
# Плохо: создает список в памяти
squares = [x**2 for x in range(1000000)]

# Лучше: генератор
squares_gen = (x**2 for x in range(1000000))
  1. Кеширование результатов с помощью 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)
  1. Использование set для быстрого поиска (O(1) вместо O(n) у списков).

  2. Локальные переменные в циклах: доступ к ним быстрее, чем к глобальным.

  3. Встроенные функции (map(), filter(), sum()) часто работают быстрее ручных аналогов.

  4. Избегание + для immutable объектов (например, кортежи или строки), так как создается новый объект.

  5. Профилирование кода через cProfile или timeit для точного выявления узких мест.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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