Отображение в консоли различных типов коллекций Python

x печатается как список чисел 0–9, y — как множество этих чисел без гарантии порядка. z — объект генератора: print показывает его представление, а не сгенерированные числа.

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

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

x печатается как список чисел 0–9, y — как множество этих чисел без гарантии порядка. z — объект генератора: print показывает его представление, а не сгенерированные числа.

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

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

Условие

Какой вывод появится после выполнения следующего кода?


x = [i for i in range(10)]
y = {i for i in range(10)}
z = (i for i in range(10))

print(x)
print(y)
print(z)

Ответ

x печатается как список чисел 0–9, y — как множество этих чисел без гарантии порядка. z — объект генератора: print показывает его представление, а не сгенерированные числа.

Первый вывод точен:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Множество содержит те же десять значений; видимый порядок нельзя использовать как гарантию, даже если он выглядит возрастающим. Для z вывод похож на <generator object at 0x...>, причём адрес меняется между запусками.

Чтобы получить значения генератора, выполните list(z) или переберите его циклом. Генератор вычисляет элементы по запросу и после полного обхода исчерпывается.

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

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

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

Подробнее