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

Опубликовано: 2020-03-24

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

Итак, без лишних слов, приступим.

Оглавление

Что такое структуры данных?

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

Python имеет два типа структур данных. Python неявно поддерживает следующие структуры данных: Set, Dictionary, List и Tuple. Это встроенные структуры данных Python.

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

Подробнее: 6 наиболее часто используемых структур данных в R

Встроенные структуры данных в Python

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

  • Словари
  • Списки
  • Наборы
  • Кортежи

Давайте подробно обсудим каждый из них:

1. Словари

Мы используем словари для хранения пар ключ-значение. Точно так же, как в физическом словаре хранится слово вместе с его значением, словарь в Python хранит пары ключ-значение. Термины являются ключами, тогда как различные значения, связанные с этими словами, являются значениями. Со значением вы можете получить доступ к ключам.

Вы можете создать словарь с фигурными скобками. Вы также можете использовать для этой цели функцию dict(). Вот пример:

my_dict = {} #пустой словарь

печать (мой_дикт)

my_dict = {1: 'A', 2: 'B'} #словарь с элементами

печать (мой_дикт)

Вывод приведенного выше кода:

{}

{1: "А", 2: "Б"}

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

my_dict = {'Первый': 'А', 'Второй': 'Б'}

печать (мой_дикт)

my_dict['Second'] = 'C++' #изменение элемента

печать (мой_дикт)

my_dict['Third'] = 'Ruby' #добавление пары ключ-значение

печать (мой_дикт)

Вывод приведенного выше кода:

{'Первый': 'А', 'Второй': 'Б'}

{'Первый': 'А', 'Второй': 'В'}

{'Первый': 'A', 'Второй': 'C', 'Третий': 'D'}

Вы можете удалить значения в своем словаре с помощью функции pop(). Функция pop() возвращает значение, которое вы удалили. Вы можете получить пару ключ-значение с помощью функции popitem(). Он возвращает кортеж пары. Вы также можете очистить весь словарь с помощью функции clear(). Вот пример:

my_dict = {'Первый': 'A', 'Второй': 'B'', 'Третий': 'C'}

a = my_dict.pop('Третий') #элемент pop

print('Значение:', а)

print('Словарь:', my_dict)

b = my_dict.popitem() # извлекает пару ключ-значение

print('Ключ, пара значений:', b)

print('Словарь', my_dict)

my_dict.clear() #пустой словарь

печать('n', my_dict)

Вывод приведенного выше кода:

Значение: С

Словарь: {'Первый': 'А', 'Второй': 'Б'}

Ключ, пара значений: ("Второй", "Б")

Словарь {'Первый': 'А'}

{}

Читайте также: Идеи и темы проекта Python

2. Списки

Мы используем списки для последовательного хранения данных. Каждый элемент списка имеет адрес, который также называется индексом. Значение индекса списка идет от 0 до последнего элемента, присутствующего в вашем списке, и его имя — положительное индексирование. Точно так же, когда вы возвращаетесь от последнего элемента к первому и считаете с -1, это называется отрицательной индексацией.

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

my_list = [] #создать пустой список

распечатать (мой_список)

my_list = [A, B, C, 'example', Z] # создание списка с данными

распечатать (мой_список)

Вывод приведенного выше кода:

[]

[A, B, C, пример, Z]

Вы можете добавлять элементы в свой список, используя функции insert(), extend() и append(). Функция insert() добавляет те элементы, которые были переданы в значение индекса. Функция insert() также увеличивает размер списка.

С помощью функции append() вы можете добавить все переданные ей элементы как один элемент. С другой стороны, функция extend() может добавлять элементы один за другим.

Вот пример:

мой_список = [А, Б, С]

распечатать (мой_список)

my_list.append([555, 12]) #добавить как отдельный элемент

распечатать (мой_список)

my_list.extend([234, 'more_example']) #добавить как разные элементы

распечатать (мой_список)

my_list.insert(1, 'insert_example') #добавить элемент i

распечатать (мой_список)

Вывод приведенного выше кода:

[А, Б, С]

[А, В, С, [555, 12]]

[A, B, C, [555, 12], 234, 'more_example']

[A, 'insert_example', B, C, [555, 12], 234, 'more_example']

При работе со списками вы также столкнетесь с необходимостью удаления некоторых элементов. Вы можете использовать ключевое слово 'del'. Это встроенное ключевое слово Python, и оно ничего не возвращает. Если вы хотите вернуть элемент, вам придется использовать функцию pop(), а чтобы удалить элемент через его значение, вам придется использовать функцию remove(). Вот пример:

my_list = [A, B, C, пример, Z, 10, 30]

del my_list[5] #удалить элемент с индексом 5

распечатать (мой_список)

my_list.remove('example') #удалить элемент со значением

распечатать (мой_список)

a = my_list.pop(1) #выбрать элемент из списка

print('Извлеченный элемент: ', a, 'Оставшийся список: ', my_list)

my_list.clear() # очистить список

распечатать (мой_список)

Вывод приведенного выше кода:

[A, B, C, пример, Z, 30]

[А, Б, В, Я, 30]

Выдвинутый элемент: 2 Осталось списка: [A, C, Z, 30]

[]

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

my_list = [A, B, C, пример, Z, 10, 30]

для элемента в my_list: #доступ к элементам один за другим

печать (элемент)

print(my_list) #доступ ко всем элементам

print(my_list[3]) #доступ к элементу индекса 3

print(my_list[0:2]) #доступ к элементам от 0 до 1 и исключение 2

print(my_list[::-1]) #доступ к элементам в обратном порядке

Вывод приведенного выше кода:

А

Б

С

пример

Z

10

30

[A, B, C, пример, Z, 10, 30]

пример

[А, Б]

[30, 10, Z, пример, 3, 2, 1]

3. Наборы

Набор уникальных и неупорядоченных элементов называется набором. Таким образом, если вы по какой-то причине повторяете данные, они появятся в наборе только один раз. Множества в Python похожи на множества, о которых вы читали в математике. От их свойств до их функций вы найдете много общего между ними.

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

my_set = {A, B, C, D, E, E, E} #создать набор

печать (мой_набор)

Вывод приведенного выше кода:

{А, Б, В, Г, Е}

Как мы упоминали ранее, вы можете выполнять все функции наборов, которые вы выполняете в арифметике, в наборах Python. С помощью функции union() вы можете объединить данные, представленные в двух наборах. Функция пересечения () дает вам данные, которые присутствуют в обоих упомянутых наборах.

У вас есть функция Differenti(), которая позволяет вам удалить данные, доступные в обоих наборах, и дает вам данные, которые не являются общими для них. Функция symmetric_difference() дает вам данные, оставшиеся в этих наборах.

my_set = {А, Б, В, Г}

my_set_2 = {С, Д, Е, Ф}

print(my_set.union(my_set_2), '———-', my_set | my_set_2)

print(my_set.intersection(my_set_2), '———-', my_set и my_set_2)

print(my_set.difference(my_set_2), '———-', my_set – my_set_2)

print(my_set.symmetric_difference(my_set_2), '———-', my_set ^ my_set_2)

my_set.clear()

печать (мой_набор)

Вывод приведенного выше кода:

{А, Б, В, Г, Д, Ф} ———- {А, В, В, Г, Е, Ф}

{С, Д} ———- {С, Д}

{А, В} ———- {А, В}

{А, Б, Д, Ф} ———- {А, Б, Д, Ф}

задавать()

Читайте также: Зарплата разработчиков Python в Индии

4. Кортежи

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

my_tuple = (A, B, C) #создать кортеж

печать (мой_кортеж)

Вывод приведенного выше кода:

(А, Б, С)

Метод доступа к значениям в кортежах такой же, как и в списках.

my_tuple2 = (A, B, C, «Обновить») #доступ к элементам

для x в my_tuple2:

печать (х)

печать (my_tuple2)

печать (my_tuple2 [0])

печать (my_tuple2 [:])

Вывод приведенного выше кода:

А

Б

С

Обновление

(A, B, C, «Обновление»)

А

(A, B, C, «Обновление»)

Заключение

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

Если вы хотите узнать больше о Python и структурах данных, обратите внимание на наши курсы.

Если вам интересно узнать о python, все о науке о данных, ознакомьтесь с дипломом PG IIIT-B и upGrad по науке о данных, который создан для работающих профессионалов и предлагает более 10 тематических исследований и проектов, практические практические семинары, наставничество с промышленностью. экспертов, общение один на один с отраслевыми наставниками, более 400 часов обучения и помощь в трудоустройстве в ведущих фирмах.

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

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

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

В чем разница между списками и кортежами?

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

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

Чем наборы отличаются от списков?

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

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