Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: tuple, list, memory, Python, immutable

Сколько памяти занимает tuple по сравнению с list и почему?

Вопрос проверяет понимание внутреннего устройства структур данных Python и оптимизации памяти.

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

Кортеж (tuple) занимает меньше памяти, чем список (list), потому что он неизменяемый. Список хранит дополнительную информацию для поддержки изменений, например, резервный буфер для добавления элементов. Кортеж же создаётся один раз и не требует такого оверхеда.

Длинный ответ

Почему tuple занимает меньше памяти?

В Python кортежи и списки — это последовательности, но они устроены по-разному. Список — это динамический массив, который может изменять свой размер. Для этого он хранит не только сами элементы, но и дополнительную информацию: указатель на массив, количество элементов и зарезервированную память (capacity). Когда вы добавляете элемент, список может заранее выделить больше памяти, чтобы избежать частых перераспределений. Кортеж же неизменяем, поэтому его размер фиксирован. Он хранит только сами элементы и не требует резервного буфера.

Пример сравнения

import sys

t = (1, 2, 3)
l = [1, 2, 3]

print(sys.getsizeof(t))  # 72 (зависит от версии Python)
print(sys.getsizeof(l))  # 120 (больше из-за оверхеда)

В этом примере кортеж занимает 72 байта, а список — 120. Разница обусловлена тем, что список хранит дополнительный массив для будущих добавлений.

Где это применяется?

Если вам нужна неизменяемая коллекция данных, используйте кортеж — это экономит память и повышает производительность. Например, для хранения констант, координат или возвращаемых значений из функций. Список лучше подходит, когда данные могут меняться.

Вывод: Кортежи эффективнее по памяти из-за отсутствия оверхеда на динамическое расширение. Выбирайте кортеж для фиксированных данных, а список — для изменяемых.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#tuple

#list

#memory

#Python

#immutable

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.