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

Списки

movie_list = ['Die Hard', 'Lethal Weapon', 'Batman Returns']

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

movie_list

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

print(movie_list[1])

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

movie_list = ['Die Hard', 'Lethal Weapon', 'Batman Returns', 'Cobra', 'Jingle All the Way', 'Die Hard 2', 'Rambo: First Blood']
print(movie_list[2:5])

Этот метод извлечения необходимых вам значений будет с индексом 2 (Batman Returns) и будет проходить через диапазон, заканчивающийся на 4 (Jingle All the Way). Однако это немного сложно, поскольку он останавливается на одном индексе непосредственно перед последним (вместо индекса 5 он будет заканчиваться на индексе 4). Очень здорово, правда? А теперь у вас есть несколько забавных мелочей о рождественских боевиках!

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

Кортежи

Итак, я знаю, о чем вы думаете. «Что, черт возьми, такое кортеж?» Я знаю себя тоже. Не волнуйтесь, мы вместе пройдем через это! В отличие от списка, кортежи также упорядочены, но их нельзя изменить. Большая разница по сравнению с тем, как списки обрабатывают свои значения. Давайте начнем с демонстрации того, что такое кортеж.

fruit = ("grapes", "oranges", "plums", "kiwis")
print(fruit)

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

fruit = ("grapes", "oranges", "plums", "kiwis")
print(fruit[2])

Посмотри, это было совсем несложно! Он также следует той же структуре, если вы хотите отфильтровать кортеж с помощью примера [2: 5], который мы показали ранее. Хотя это выглядит одинаково, давайте не будем забывать, почему списки и кортежи - это не одно и то же. Как было сказано ранее, кортежи неизменяемы. Помните, что вы не можете добавлять или удалять элементы в кортеж, вы получите сообщение об ошибке, если попробуете это так же, как со списком. Есть способы обойти это, но это зависит от существенного изменения кортежа на список. Вот пример того, как это сделать.

fruit = ("grapes", "oranges", "plums", "kiwis")
fruits = list(fruit)
fruits[1] = "apple"
fruit = tuple(fruits)
print(fruit)

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

fruit = ("grapes", "oranges", "plums", "kiwis")
if "kiwis" in fruit:
   print("Hey, we got 'kiwis' up in here!")

Словари

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

tarantino = {'name': 'Quentin',
'age': 56,
'films_directed': ['Kill Bill', 'Pulp Fiction', 'Jackie Brown', 'Once Upon a Time in Hollywood'],
'alive': True
}

Давайте будем честными, я не собирался перечислять все его фильмы, но вот пример словаря о Квентине Тарантино! (Мой личный фаворит - «Бесславные ублюдки», потому что он объективно лучший, не надо @ меня). Итак, вы можете понять, что я имею в виду под каждым значением, имеющим уникальный ключ. Имя относится к Квентину в словаре тарантино! Более того, вложенные списки - это реальный вариант представления данных в словарях.

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

tarantino['age']
56

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

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

tarantino = {'name': 'Quentin',
'age': 56,
'films_directed': ['Kill Bill', 'Pulp Fiction', 'Jackie Brown', 'Once Upon a Time in Hollywood'],
'alive': True
}
if "films_directed" in tarantino:
   print("Yeah, he might've had a few 'films_directed")

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

Просто чтобы завершить

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