Список против кортежа: разница между списком и кортежем

Опубликовано: 2021-01-08

В Python список и кортеж — это класс структуры данных, который может хранить один или несколько объектов или значений. Список используется для хранения нескольких элементов в одной переменной и может быть создан с помощью квадратных скобок. Точно так же кортежи также могут хранить несколько элементов в одной переменной и могут быть объявлены с использованием круглых скобок.

Хотя между списком и кортежем много различий, есть и некоторые сходства, а именно:

  • Две структуры данных являются типами данных последовательности, в которых хранятся наборы элементов.
  • В них могут храниться элементы любого типа данных.
  • Доступ к элементам можно получить по их индексу.

Оглавление

Список против кортежа

В таблице ниже приведены основные различия между списком и кортежем в Python.

Список Кортеж
Это изменчиво Это неизменно
Последствия итераций занимают много времени в списке. Последствия итераций намного быстрее в кортежах.
Такие операции, как вставка и удаление, выполняются лучше. Элементы могут быть доступны лучше.
Потребляет больше памяти. Потребляет меньше памяти.
Доступно множество встроенных методов. Не имеет большого количества встроенных методов.
Неожиданные ошибки и изменения могут легко произойти в списках.

Неожиданные ошибки и изменения редко происходят в кортежах.

В следующих разделах представлена ​​подробная версия сравнения списка и кортежа для лучшего понимания.

Разница в синтаксисе

Как упоминалось во введении, синтаксис списка и кортежа отличается. Например:

номер_списка = [10, 20, 30, 40]

tup_num = (10, 20, 30, 40)

Изменчивость

Одно из наиболее важных различий между списком и кортежем заключается в том, что список является изменяемым, тогда как кортеж неизменяемым. Это означает, что списки можно изменять, а кортежи нельзя изменять.

Итак, некоторые операции могут работать со списками, но не с кортежами. Например, в науке о данных, если список уже существует, определенные его элементы можно переназначить. Вместе с этим весь список можно переназначить. Элементы и срезы элементов можно удалять из списка.

С другой стороны, отдельные элементы кортежа нельзя переназначить или удалить, но можно разрезать его на части и даже переназначить и удалить весь кортеж. Поскольку кортежи неизменяемы, их нельзя скопировать.

Проверьте: Python против Java

Операции

Хотя существует множество операций, сходных как со списками, так и с кортежами, у списков есть дополнительные функции, недоступные для кортежей. Это операции вставки и извлечения, а также сортировка и удаление элементов в списке.

Функции

Некоторые функции Python можно применять к обеим структурам данных, например len, max, min, any, sum, all и sorted.

Размер

В Python для кортежей выделяются большие блоки памяти с меньшими накладными расходами, поскольку они неизменяемы; тогда как для списков выделяются небольшие блоки памяти. Между ними у кортежей меньше памяти. Это помогает создавать кортежи быстрее, чем списки, когда имеется большое количество элементов.

Тип элементов

Элементы, принадлежащие разным типам данных, т. е. разнородные элементы, обычно хранятся в кортежах. В то время как однородные элементы, элементы одних и тех же типов данных, обычно хранятся в списках. Но это не ограничение для структур данных. Элементы сходного типа данных могут храниться в кортежах, а элементы разных типов данных также могут храниться в списках.

Длина

Длины различаются в двух структурах данных. Кортежи имеют фиксированную длину, а списки имеют переменную длину. Таким образом, размер создаваемых списков можно изменить, но не кортежей.

Отладка

Когда дело доходит до отладки, в списках и кортежах кортежи легче отлаживать для больших проектов из-за их неизменности. Итак, если проект меньше или объем данных меньше, лучше использовать списки. Это связано с тем, что списки можно изменять, а кортежи — нельзя, что упрощает отслеживание кортежей.

Вложенные списки и кортежи

Кортежи могут храниться в списках, и точно так же списки могут храниться внутри кортежей. Во вложенных кортежах кортеж может содержать больше кортежей. А во вложенных списках список может содержать больше списков.

Использование

Важно понимать, что есть разные случаи, когда лучше использовать одну из этих структур данных, например; использование любого из них зависит от программиста, то есть выбор одного зависит от того, хотят ли они изменить данные позже или нет.

Кортежи можно использовать как эквивалент словаря без ключей для хранения данных. Когда кортежи хранятся в списках, данные легче читать.

Читайте: Дополнительные типы структур данных в Python

Заключение

Эта статья поможет понять разницу между списками и кортежами. Несмотря на то, что оба типа являются структурами данных в Python, важно знать эти различия при выборе. Наиболее важные различия, о которых следует помнить, заключаются в том, что списки изменяемы, а кортежи — нет, списки имеют переменные размеры, а кортежи имеют фиксированные размеры. Наконец, операции с кортежами могут выполняться быстрее.

Если вы читаете эту статью, скорее всего, у вас есть амбиции стать разработчиком Python. Если вы заинтересованы в изучении python и хотите запачкать руки различными инструментами и библиотеками, ознакомьтесь с программой Executive PG IIIT-B и upGrad по науке о данных.

Когда список Python предпочтительнее для хранения данных?

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

Укажите различные операции namedtuple.

namedtuple в Python выполняет различные операции. Ниже приведен список некоторых наиболее распространенных операций, выполняемых namedtuple: доступ по индексу, доступ по имени ключа, make(), _asadict(), использование оператора «**» (двойная звезда), _fileds(), _replace. (), так далее.

Какие существуют способы создания списка?

Список Python можно создать несколькими способами, упомянутыми здесь. Использование циклов for. Цикл for — самый простой способ создания списка. Список можно создать с помощью цикла for тремя простыми способами: создать пустой список, выполнить итерацию по всем элементам, которые должны быть вставлены, добавить каждый элемент в список с помощью функции append(). Использование map(): Функцию map() в Python можно использовать в качестве альтернативы для создания списка. Эта функция принимает два параметра: функция: функция, которой карта передает каждый итерируемый объект, и итерируемый объект: элемент или итерируемый объект, который необходимо сопоставить. Использование списков: этот метод является наиболее оптимизированным из всех трех методов. В то время как в приведенных выше методах сначала необходимо создать пустой список, генераторы списков позволяют вам вставлять все элементы в список, используя одну строку.