Сложные типы данных в Python 🧩

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

Что такое сложные типы данных? 🤔

В отличие от простых типов данных (числа, строки, логические значения), которые хранят одно значение, сложные типы могут содержать множество значений различных типов под одним именем. Они похожи на контейнеры или коллекции, где вы можете организовывать и хранить связанные данные.

Python предлагает четыре основных сложных типа данных:

  1. Списки (list) — упорядоченные, изменяемые коллекции элементов
  2. Кортежи (tuple) — упорядоченные, неизменяемые коллекции элементов
  3. Множества (set) — неупорядоченные коллекции уникальных элементов
  4. Словари (dict) — коллекции пар ключ-значение

Рассмотрим краткий пример каждого типа:

Python 3.13
# Список (упорядоченный, изменяемый)
fruits = ["яблоко", "банан", "вишня"]

# Кортеж (упорядоченный, неизменяемый)
coordinates = (10.5, 20.7, 30.9)

# Множество (неупорядоченный, только уникальные элементы)
unique_numbers = {1, 2, 3, 4, 5}

# Словарь (пары ключ-значение)
person = {"name": "Алекс", "age": 30, "city": "Москва"}

Сравнение сложных типов данных 📊

Ключевые различия между основными сложными типами данных:

Тип данныхСинтаксисОсновные свойстваКогда использовать
Список (list)[1, 2, 3]✅ Изменяемый
✅ Упорядоченный
✅ Доступ по индексу
Когда важен порядок и нужно изменять коллекцию
Кортеж (tuple)(1, 2, 3)❌ Неизменяемый
✅ Упорядоченный
✅ Доступ по индексу
Для защиты данных от изменений (координаты, константы)
Множество (set){1, 2, 3}✅ Изменяемый
❌ Неупорядоченный
❌ Нет индексов
Когда нужны только уникальные элементы
Словарь (dict){"key": "value"}✅ Изменяемый
✅ Упорядоченный (с Python 3.7)
✅ Доступ по ключу
Для связи значений с уникальными ключами

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

Выбор подходящего типа данных зависит от задачи:

  • Список (list) — когда важен порядок элементов и коллекция может изменяться

    Python 3.13
    # Список задач на день
    todo_list = ["Купить продукты", "Выгулять собаку", "Написать код"]
    
  • Кортеж (tuple) — когда данные не должны изменяться и важен порядок

    Python 3.13
    # Координаты точки в 3D пространстве
    point_3d = (10.5, 8.3, 9.1)
    
  • Множество (set) — когда нужны только уникальные элементы и не важен порядок

    Python 3.13
    # Уникальные имена пользователей
    unique_users = {"alice", "bob", "charlie"}
    
  • Словарь (dict) — когда данные организованы в виде пар ключ-значение

    Python 3.13
    # Информация о пользователе
    user = {"username": "alex123", "email": "[email protected]", "active": True}
    

Преобразование между типами 🔄

Python позволяет легко преобразовывать данные из одного сложного типа в другой:

Python 3.13
# Создаем список
my_list = [1, 2, 3, 3, 4, 5]

# Преобразуем список в кортеж
my_tuple = tuple(my_list)  # (1, 2, 3, 3, 4, 5)

# Преобразуем список во множество (дубликаты будут удалены)
my_set = set(my_list)  # {1, 2, 3, 4, 5}

# Создаем словарь из списка пар
pairs = [("a", 1), ("b", 2), ("c", 3)]
my_dict = dict(pairs)  # {"a": 1, "b": 2, "c": 3}

Проверка понимания 🧠

Давайте проверим, насколько хорошо вы поняли основные сложные типы данных:

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

Заключение 🎓

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

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

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

Давайте начнем с изучения списков, самого гибкого и часто используемого сложного типа данных в Python!


Мы с вами на связи
Русский