Кортеж - это костыль?

Рейтинг: 0Ответов: 1Опубликовано: 18.02.2023

Я поспорил с другом. Давайте разовьём дискуссию. Я ставлю - что да, поскольку кортедж - тот же список, но как строка. Но ведь тогда словарь - список списков (кортеж кортежей)?

Ответы

▲ 2

Это всё разные объекты, они все нужны:

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