Изучайте Python: Списки, множества и кортежи

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

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

Реальный пример структуры данных Python в действии — банковская очередь, в которой все желающие выстраиваются в очередь к представителю банка по принципу FIFO (First In, First Out). Это означает, что человек, стоящий впереди очереди, будет обслужен первым, а последний человек в очереди будет обслужен последним. И наоборот, стопка тарелок, где последняя добавленная тарелка убирается первой, основана на принципе LIFO (last-in/first-out), который гарантирует, что последний элемент выскочит первым, и наоборот. Вы сможете применять эти алгоритмы к большему количеству реальных ситуаций по мере приобретения навыков работы с ними. Эта статья предназначена для начинающих, поэтому не волнуйтесь, если вы новичок в Python.

Мы рассмотрим следующее:

  • Что такое списки?
  • Что такое кортежи?
  • Что такое множества?
  • Списки vs. множества vs. кортежи: Различия и сходства
  • Куда двигаться дальше

Что такое списки в Python?

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

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

Чтобы лучше понять, давайте рассмотрим пример, в котором мы хотим создать список, содержащий фрукты. Эти элементы будут заключены в квадратные скобки [] и разделены запятой. Приведенный ниже код показывает наш список фруктов:

fruits_list = [ 'Apple', 'Banana', 'Pineapple', 'Orange', 'Strawberry', 'Kiwi', 'Guava'] 
print(fruits_list)

---> ['Apple', 'Banana', 'Pineapple', 'Orange', 'Strawberry', 'Kiwi', 'Guava']
Войти в полноэкранный режим Выход из полноэкранного режима

Из приведенного примера видно, что наш список фруктов начинается с Apple и заканчивается Guava. Если мы хотим повторить элемент, мы можем это сделать, поскольку списки являются изменяемыми и допускают дубликаты. Два ключевых отличительных признака списков — это то, что они упорядочены и допускают дублирование элементов.

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

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

Давайте на нашем примере выполним эти операции!

Итерация

Мы можем использовать определенные операции, такие как print(), для итерации нашего списка. Исходя из нашего примера, мы можем перебирать каждый элемент списка с помощью цикла for:

fruits_list = [ 'Apple', 'Banana', 'Pineapple', 'Orange', 'Strawberry', 'Kiwi', 'Guava']
for fruit in fruits_list: 
 print(fruit)

---> 
Apple
Banana
Pineapple
Orange
Strawberry
Kiwi
Guava
Вход в полноэкранный режим Выход из полноэкранного режима

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

Доступ к элементам

Доступ к элементам списка осуществляется через позицию индекса. Давайте рассмотрим другой пример:

fruits_list = [ 'Apple', 'Banana', 'Pineapple', 'Orange', 'Strawberry', 'Kiwi', 'Guava']
print(fruits_list[2]) 

---> Pineapple
Вход в полноэкранный режим Выйти из полноэкранного режима

Здесь мы передали значение индекса 2 для доступа к элементу в этой позиции. Помните, что индексы в списках начинаются с 0, а не с 1.

Модификация элементов

Ранее мы узнали, что основной характеристикой списков является их изменяемость. Поэтому мы можем добавлять, удалять и изменять элементы в списке. Например, мы можем добавить новый элемент в конец списка с помощью функции append(), как показано ниже:

fruits_list = [ 'Apple', 'Banana', 'Pineapple', 'Orange', 'Strawberry', 'Kiwi', 'Guava']
fruits_list.append('Pear') 
print(fruits_list)

--->
['Apple', 'Banana', 'Pineapple', 'Orange', 'Strawberry', 'Kiwi', 'Guava', 'Pear']
Вход в полноэкранный режим Выйти из полноэкранного режима

Мы также можем удалять элементы по их значению в списке с помощью функции remove():

fruits_list = [ 'Apple', 'Banana', 'Pineapple', 'Orange', 'Strawberry', 'Kiwi', 'Guava']
fruits_list.remove('Banana') 
print(fruits_list)

---> 
['Apple', 'Pineapple', 'Orange', 'Strawberry', 'Kiwi', 'Guava']
Вход в полноэкранный режим Выход из полноэкранного режима

Мы также можем изменять элементы в списке по их индексной позиции:

fruits_list = [ 'Apple', 'Banana', 'Pineapple', 'Orange', 'Strawberry', 'Kiwi', 'Guava']
fruits_list[3] = 'Grapes' 
print(fruits_list) 

--->
['Apple', 'Banana', 'Pineapple', 'Grapes', 'Strawberry', 'Kiwi', 'Guava']
Войти в полноэкранный режим Выход из полноэкранного режима

Другие функции

При работе со списками используются следующие методы:

  • sort () преобразует несортированный список в сортированный.

Вы можете углубить свое понимание списков из этой статьи на сайте Educative.

Что такое кортежи?

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

Мы также заключаем кортеж в круглые скобки (), а не в квадратные скобки [] и разделяем их запятой.

Давайте рассмотрим пример:

fruits_tuple = ('Apple', 'Banana', 'Pineapple', 'Orange', 'Strawberry', 'Kiwi', 'Guava') 
print(fruits_tuple)

--->
('Apple', 'Banana', 'Pineapple', 'Orange', 'Strawberry', 'Kiwi', 'Guava')
Вход в полноэкранный режим Выход из полноэкранного режима

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

Доступ к элементам кортежа

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

Рассмотрим пример ниже:

fruits_tuple = ('Apple', 'Banana', 'Pineapple', 'Orange', 'Strawberry', 'Kiwi', 'Guava') 
print(fruits_tuple[2]) 
print(fruits_tuple[-1])

--->
Pineapple
Guava
Вход в полноэкранный режим Выход из полноэкранного режима

Итерация элементов кортежа

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

fruits_tuple = ('Apple', 'Banana', 'Pineapple', 'Orange', 'Strawberry', 'Kiwi', 'Guava')
for i in fruits_tuple: 
 print(i) 

--->
Apple
Banana
Pineapple
Orange
Strawberry
Kiwi
Guava
Вход в полноэкранный режим Выход из полноэкранного режима

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

Что такое множества?

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

Ниже рассмотрим набор в Python:

employee_set = {'Charlie Brown', 'Kaylee Rust', 'Holy Ronald', 'Kris Troy', 'Georgina Depp'} 
print(employee_set) 

--->
set(['Charlie Brown', 'Holy Ronald', 'Georgina Depp', 'Kaylee Rust', 'Kris Troy'])
Войти в полноэкранный режим Выйти из полноэкранного режима

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

Изменение элементов множества

Поскольку мы знаем, что множества являются изменяемыми, мы можем изменять их по своему усмотрению. Мы можем использовать add() для добавления элемента в набор и remove() для удаления элемента из набора.

Например:

employee_set = {'Charlie Brown', 'Kaylee Rust', 'Holy Ronald', 'Kris Troy', 'Georgina Depp'} 
employee_set.add('Kamala Haris') 
print(employee_set) 

--->
set(['Charlie Brown', 'Kris Troy', 'Kaylee Rust', 'Kamala Haris', 'Holy Ronald', 'Georgina Depp'])
Войти в полноэкранный режим Выйти из полноэкранного режима

Чтобы использовать метод remove() на нашем наборе, мы можем сделать следующее:

employee_set = {'Charlie Brown', 'Kaylee Rust', 'Holy Ronald', 'Kris Troy', 'Georgina Depp'} 
employee_set.remove('Kaylee Rust') 
print(employee_set)

---> 
set(['Charlie Brown', 'Holy Ronald', 'Georgina Depp', 'Kris Troy'])
Войти в полноэкранный режим Выйти из полноэкранного режима

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

Более распространенные методы, используемые в наборах, включают:

Списки vs множества vs кортежи: различия и сходства

Вам было интересно узнать о списках, кортежах и множествах Python? Давайте подведем итоги нашего знакомства со всеми тремя структурами данных:

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

Куда двигаться дальше

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

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

Если вы все еще не освоили язык, не забудьте ознакомиться с практическим курсом Educative «Основы Python».

Счастливого обучения!

Чтобы получать больше материалов по Python прямо на свой электронный ящик, подпишитесь на нашу рассылку Grokking Python на Substack!

Продолжайте изучать Python на сайте Educative

  • Изучайте Python 3: основы Python в 7 задачах по кодированию
  • Полное руководство по веб-разработке на Python
  • Что вы можете делать с помощью Python? 5 реальных приложений Python

Начните обсуждение

Какие еще аспекты Python вы хотите изучить? Была ли эта статья полезной? Сообщите нам об этом в комментариях ниже!

Оцените статью
devanswers.ru
Добавить комментарий