Встречается на 2% собеседований по Python

Что такое comprehension в Python

Comprehension — это компактный способ создания коллекций (списков, словарей, множеств) на основе итерируемых объектов. В Python существуют:

  1. List comprehension
python
numbers = [x**2 for x in range(10) if x % 2 == 0]  # [0, 4, 16, 36, 64]
  1. Dict comprehension
python
squares = {x: x**2 for x in range(5)}  # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
  1. Set comprehension
python
unique = {x for x in 'abracadabra' if x not in 'abc'}  # {'d', 'r'}
  1. Generator expression (аналог для генераторов)
python
gen = (x*2 for x in [1, 2, 3])

Особенности:

  • Читаемость (но может ухудшиться при сложных условиях)
  • Производительность обычно выше, чем у циклов
  • Поддерживает вложенные циклы и условия
  • Не создает переменных в текущем namespace (в отличие от цикла for)

Используйте там, где логика простая. Для сложных преобразований лучше обычные циклы.

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

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

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