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

Какие знаешь не списковые генераторы

В Python, помимо списковых генераторов (list comprehension), существуют другие виды генераторов:

  1. Генераторы словарей (dict comprehension)

    python
    squares = {x: x**2 for x in range(5)}  # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
  2. Генераторы множеств (set comprehension)

    python
    unique_chars = {c for c in 'hello'}  # {'h', 'e', 'l', 'o'}
  1. Генераторные выражения (generator expressions)
    Ленивые аналоги списковых генераторов, создаются с круглыми скобками:

    python
    gen = (x**2 for x in range(5))  # <generator object <genexpr> at ...>
    next(gen)  # 0
  2. Генераторы функций (generator functions)
    Используют yield вместо return:

    python
    def count_up_to(n):
        i = 1
        while i <= n:
            yield i
            i += 1

Ключевое отличие: Генераторные выражения и функции ленивы (экономят память), тогда как списковые/словарные/множественные генераторы создают объект сразу.

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

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

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

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