Идентификация типов переменных, полученных разными comprehension

list_comp имеет тип list, set_comp — set, gen_expr — generator. Круглые скобки с for создают генераторное выражение, а не tuple comprehension.

Короткий ответ

Что ответить на собеседовании

list_comp имеет тип list, set_comp — set, gen_expr — generator. Круглые скобки с for создают генераторное выражение, а не tuple comprehension.

Подробный разбор

Ответ с пояснениями

Условие

В данном примере создаются три переменные с использованием различных форм записи comprehension. Определите, к какому типу данных относится каждая из них.

list_comp = [i for i in range(10)]
set_comp = {i for i in range(10)}
gen_expr = (i for i in range(10))

Ответ

list_comp имеет тип list, set_comp — set, gen_expr — generator. Круглые скобки с for создают генераторное выражение, а не tuple comprehension.

Список и множество сразу вычисляют элементы, а генератор выдаёт их по запросу:

print(type(list_comp))  # <class 'list'>
print(type(set_comp))   # <class 'set'>
print(type(gen_expr))   # <class 'generator'>

Список сохраняет порядок и допускает повторы. Множество хранит уникальные хешируемые элементы без гарантированного порядка обхода. Генератор одноразовый и не поддерживает обычные len или индексирование; повторный обход уже исчерпанного генератора ничего не выдаст.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее