Найти в Дзене
КУЗИНОБИТ

Урок 12: Обзор коллекций в Python.

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

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

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

В данную статью добавлены ссылки на GitHub в каждом примере. Также общая ссылка на GitHub для данного урока:
python_course/lesson_12 at main · kuzinobit/python_course

Что такое коллекции?

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

Основные типы коллекций в Python:

  1. Списки (list)
  2. Кортежи (tuple)
  3. Словари (dict)
  4. Множества (set)
  5. Дека (deque)
  6. Множество неизменяемых элементов (frozenset)

Почему важно понимать коллекции в целом?

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

Краткий обзор основных коллекций

Списки (list):

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

Создание списка:

python_course/lesson_12/create_list.py at main · kuzinobit/python_course
Пример создания list.
Пример создания list.
# Создание списка
numbers = [1, 2, 3, 4, 5]

Особенности:

  • Изменяемые (можно добавлять, удалять, изменять элементы).
  • Допускают дублирование элементов.
  • Поддерживают индексацию и срезы.

Мы подробно изучили списки в уроке 6:

Кортежи (tuple):

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

Создание кортежа:

python_course/lesson_12/create_tuple.py at main · kuzinobit/python_course
Пример создания tuple.
Пример создания tuple.
# Создание кортежа
coordinates = (10, 20)

Особенности:

  • Неизменяемые (нельзя изменять элементы после создания).
  • Поддерживают индексацию и срезы.
  • Используются для хранения неизменяемых данных.

Мы подробно изучили кортежи в уроке 10:

Словари (dict):

Словари — это неупорядоченные коллекции пар "ключ-значение", которые позволяют быстро находить значения по ключу.

Создание словаря:

python_course/lesson_12/create_dict.py at main · kuzinobit/python_course
Пример создания dict.
Пример создания dict.
# Создание словаря
person = {"имя": "Иван", "возраст": 30}

Особенности:

  • Изменяемые.
  • Ключи должны быть уникальными и неизменяемыми.
  • Быстрый доступ к значениям по ключу.

Мы подробно изучили словари в уроке 11:

Множества (set):

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

Создание множества:

python_course/lesson_12/create_set.py at main · kuzinobit/python_course
Пример создания set.
Пример создания set.
# Создание множества
unique_numbers = {1, 2, 3, 4, 5}

Особенности:

  • Элементы уникальны (нет дубликатов).
  • Неупорядоченные (нет индексов).
  • Быстрые операции проверки принадлежности.
  • Поддерживают операции объединения, пересечения, разности.

Мы подробно изучим множества в следующем уроке.

Дека (deque):

Дека (двусторонняя очередь) из модуля collections — это обобщение очереди, которое позволяет добавлять и удалять элементы как с начала, так и с конца.

Создание деки:

python_course/lesson_12/create_deque.py at main · kuzinobit/python_course
Пример создания deque.
Пример создания deque.
from collections import deque

# Создание деки
d = deque([1, 2, 3])

Особенности:

  • Высокая производительность при добавлении и удалении элементов с обоих концов.
  • Подходит для реализации стеков и очередей.

Множество неизменяемых элементов (frozenset):

Frozenset — это неизменяемый вариант множества.

Создание frozenset:

python_course/lesson_12/create_frozenset.py at main · kuzinobit/python_course
Пример создания frozenset.
Пример создания frozenset.
# Создание frozenset
fs = frozenset([1, 2, 3])

Особенности:

  • Неизменяемое множество.
  • Может использоваться в качестве ключа словаря или элемента другого множества.

Сравнение основных коллекций.

Таблица сравнения коллекций.
Таблица сравнения коллекций.

Когда использовать ту или иную коллекцию?

  • list: Когда нужен упорядоченный изменяемый набор элементов с возможностью доступа по индексу.
  • tuple: Когда нужен упорядоченный неизменяемый набор элементов. Часто используется для возвращения нескольких значений из функции.
  • dict: Когда нужен набор пар "ключ-значение" для быстрого доступа к значениям по уникальному ключу.
  • set: Когда нужен неупорядоченный набор уникальных элементов и требуется выполнение операций над множествами.
  • deque: Когда требуется эффективное добавление и удаление элементов с обоих концов последовательности.

Практические примеры.

Пример 1. Использование разных коллекций.

python_course/lesson_12/example_1_l12.py at main · kuzinobit/python_course
Пример использования разных коллекций.
Пример использования разных коллекций.
# Список студентов
students_list = ["Иван", "Мария", "Петр", "Анна"]

# Кортеж координат
coordinates = (55.7558, 37.6176)

# Словарь с информацией о студенте
student_info = {
"имя": "Иван",
"возраст": 20,
"курсы": ["математика", "физика"]
}

# Множество уникальных предметов
subjects = {"математика", "физика", "химия"}

# Дека для очереди задач
from collections import deque
tasks = deque(["task1", "task2", "task3"])

Пример 2. Выбор подходящей коллекции.

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

Заключение двенадцатого урока.

Сегодня мы:

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

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

В следующем уроке мы подробно изучим множества (set), их особенности и применение в задачах по обработке данных.

Домашняя работа.

Задание 1: Идентификация коллекций.

Определите, какие типы коллекций подходят для следующих задач:

  1. Хранение списка дел на день с возможностью добавления и удаления задач.
  2. Хранение географических координат точки (широта и долгота).
  3. Хранение информации о сотрудниках в формате "ID сотрудника: данные сотрудника".
  4. Хранение уникальных слов из текста.

Задание 2: Преобразование коллекций.

  1. Создайте список чисел от 1 до 10.
  2. Преобразуйте этот список в кортеж.
  3. Создайте множество из этого кортежа.
  4. Объясните, что произошло на каждом этапе и как изменились свойства коллекций.

Задание 3*: Сравнение производительности.

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

Подсказка: Используйте функции time.time() или time.perf_counter() для измерения времени.

Вопросы для самопроверки.

  1. Какие основные типы коллекций существуют в Python?
  2. Чем список отличается от кортежа?
  3. В каких случаях предпочтительно использовать множество?
  4. Что такое дека и для каких задач она используется?
  5. Почему важно выбирать правильный тип коллекции для задачи?

Свои домашние работы отправляйте на почтовый ящик homework@kuzinobit.com.

Поздравляю с успешным освоением двенадцатого урока! Теперь у вас есть общее представление о различных коллекциях в Python и их применении. В следующем уроке мы подробно изучим множества (set), их возможности и операции, которые можно выполнять с ними.

Друзья, ставьте свои лайки и подписывайтесь на канал. Дальше будет только интереснее! До новых встреч!