Sobes.tech
Back to questions
Junior — Middle
81

Объясните, почему в Python кортеж занимает меньше памяти по сравнению со списком.

Companies where asked
ИнфоТехСервис

Answer from AI

sobes.tech AI

Кортежи в Python занимают меньше памяти по сравнению со списками, потому что они являются неизменяемыми (immutable) структурами данных. Из-за этого интерпретатор может оптимизировать их хранение:

  • Кортежи не требуют дополнительного места для управления изменениями (например, для динамического изменения размера).
  • Внутренняя структура кортежа проще: отсутствуют механизмы для добавления или удаления элементов.
  • Списки реализованы как динамические массивы с запасом по размеру, что требует дополнительной памяти для возможности расширения.

Пример:

import sys

lst = [1, 2, 3, 4]
tpl = (1, 2, 3, 4)

print(sys.getsizeof(lst))  # Например, 96
print(sys.getsizeof(tpl))  # Например, 80

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