Типы структур данных в Python: список, кортеж, наборы и словарь

Опубликовано: 2020-12-30

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

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

Оглавление

Типы структуры данных в Python

1. Список

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

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

  • Чтобы объявить список в Python, поместите его в квадратные скобки:

sample_list = ['upGrad', '1', 2]

  • Чтобы инициализировать пустой список:

образец_список = список()

  • Добавьте элементы в список:

sample_list.append('новый_элемент')

  • Удалить элементы из списка:

sample_list.remove(<имя элемента>) удаляет определенный элемент

del sample_list[<номер индекса элемента>] удаляет элемент по этому индексу

sample_list.pop(<номер индекса элемента>) удаляет элемент этого индекса и возвращает этот удаленный элемент

  • Чтобы изменить элемент по любому индексу:

sample_list[<любой индекс>] = новый элемент

  • Нарезка : это важная функция, которая может отфильтровывать элементы в списке в определенных случаях. Учтите, что вам требуется только определенный диапазон значений из списка, тогда вы можете просто сделать это:

sample_list[start: stop: step], где step определяет промежуток между элементами и по умолчанию равен 1.

Узнайте больше: Как создать идеальное дерево решений

2. Кортеж

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

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

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

  • Чтобы инициализировать пустой кортеж:

sample_tuple = кортеж ()

  • Чтобы объявить кортеж, заключите элементы в круглые скобки:

sample_tuple = ('upGrad', 'Python', 'ML', 23432)

  • Чтобы получить доступ к элементам кортежа:

sample_tuple[<номер_индекса>]

3. Наборы

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

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

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

  • Чтобы инициализировать пустой набор:

пример_набор = набор ()

  • Добавьте элементы в набор:

sample_set.add(item) Добавляет один элемент в набор

sample_set.update(items) Это может добавить несколько элементов через список, кортеж или другой набор

  • Удалить элементы из набора:

sample_set.discard(item) Удаляет элемент без предупреждения, если элемент отсутствует

sample_set.remove(item) Выдает ошибку, если удаляемый элемент отсутствует.

  • Операции с наборами (предположим, что инициализировано два набора: A и B):

А | B или A.union(B): операция объединения

A & B или A.intersection(B): операция пересечения

A – B или A.difference(B): разница двух наборов

A ^ B или A.symmetric_difference(B): симметричная разница наборов

Отъезд: Фреймы данных в Python

4. Словарь

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

  • Чтобы инициализировать пустой словарь:

образец_дикт = дикт ()

  • Чтобы добавить элементы в словарь:

sample_dict[ключ] = значение

Другой способ сделать это — sample_dict = {key: value}

Если вы напечатаете этот словарь, вывод будет следующим: {'key1': значение, 'key2': значение…}

  • Чтобы получить ключи и значения словаря:

sample_dict.keys(): возвращает список ключей

sample_dict.values(): возвращает список значений

sample_dict.items(): возвращает объект просмотра пар ключ-значение в виде кортежа в списке.

Изучите курсы по науке о данных в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Заключение

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

В чем важность структур данных?

Структуры данных являются одним из фундаментальных столпов любого языка программирования. Они определяют, как данные будут храниться и обрабатываться в памяти. Концепции структур данных остаются неизменными независимо от того, о каком языке программирования идет речь.

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

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

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

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

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

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

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