May 29, 2024

Урок: Структуры данных

Структуры данных

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

Списки и операции с ними

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

Создание списка
fruits = ["apple", "banana", "cherry"]
print(fruits)  # Выводит: ['apple', 'banana', 'cherry']

# Добавление элементов
fruits.append("orange")
print(fruits)  # Выводит: ['apple', 'banana', 'cherry', 'orange']

# Вставка элемента на конкретную позицию
fruits.insert(1, "blueberry")
print(fruits)  # Выводит: ['apple', 'blueberry', 'banana', 'cherry', 'orange']

# Удаление элементов
fruits.remove("banana")
print(fruits)  # Выводит: ['apple', 'blueberry', 'cherry', 'orange']

# Доступ к элементам по индексу
print(fruits[2])  # Выводит: cherry

# Срезы
print(fruits[1:3])  # Выводит: ['blueberry', 'cherry']

Кортежи и их использование

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

Создание кортежа
colors = ("red", "green", "blue")
print(colors)  # Выводит: ('red', 'green', 'blue')

# Доступ к элементам по индексу
print(colors[1])  # Выводит: green

# Кортежи можно использовать в качестве ключей словаря
location = (40.7128, -74.0060)
places = {location: "New York"}
print(places)  # Выводит: {(40.7128, -74.006): 'New York'}

Словари и методы работы с ними

Словари используются для хранения пар "ключ-значение". Ключи должны быть уникальными и неизменяемыми (например, строки, числа или кортежи), а значения могут быть любого типа.

Создание словаря
person = {"name": "Alice", "age": 25, "city": "New York"}
print(person)  # Выводит: {'name': 'Alice', 'age': 25, 'city': 'New York'}

# Доступ к значениям по ключу
print(person["name"])  # Выводит: Alice

# Добавление и изменение элементов
person["email"] = "alice@example.com"
print(person)  # Выводит: {'name': 'Alice', 'age': 25, 'city': 'New York', 'email': 'alice@example.com'}

# Удаление элементов
del person["age"]
print(person)  # Выводит: {'name': 'Alice', 'city': 'New York', 'email': 'alice@example.com'}

# Перебор ключей и значений
for key, value in person.items():
    print(f"{key}: {value}")
# Выводит:
# name: Alice
# city: New York
# email: alice@example.com

Множества и операции над ними

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

Создание множества
fruits = {"apple", "banana", "cherry"}
print(fruits)  # Выводит: {'apple', 'banana', 'cherry'}

# Добавление элементов
fruits.add("orange")
print(fruits)  # Выводит: {'apple', 'banana', 'cherry', 'orange'}

# Удаление элементов
fruits.remove("banana")
print(fruits)  # Выводит: {'apple', 'cherry', 'orange'}

# Операции над множествами
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}

# Объединение
union_set = set1.union(set2)
print(union_set)  # Выводит: {1, 2, 3, 4, 5, 6}

# Пересечение
intersection_set = set1.intersection(set2)
print(intersection_set)  # Выводит: {3, 4}

# Разность
difference_set = set1.difference(set2)
print(difference_set)  # Выводит: {1, 2}

Практическое задание

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

# Задание 1
fruits = ["apple", "banana", "cherry"]
fruits.append("orange")
print(fruits)  # Выводит: ['apple', 'banana', 'cherry', 'orange']
fruits.remove("banana")
print(fruits)  # Выводит: ['apple', 'cherry', 'orange']
print(fruits[1:3])  # Выводит: ['cherry', 'orange']

# Задание 2
colors = ("red", "green", "blue")
print(colors[0])  # Выводит: red

# Задание 3
person = {"name": "Alice", "age": 25}
person["city"] = "New York"
print(person)  # Выводит: {'name': 'Alice', 'age': 25, 'city': 'New York'}
del person["age"]
print(person)  # Выводит: {'name': 'Alice', 'city': 'New York'}

for key, value in person.items():
    print(f"{key}: {value}")
# Выводит:
# name: Alice
# city: New York

# Задание 4
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}

union_set = set1.union(set2)
print(union_set)  # Выводит: {1, 2, 3, 4, 5, 6}

intersection_set = set1.intersection(set2)
print(intersection_set)  # Выводит: {3, 4}

difference_set = set1.difference(set2)
print(difference_set)  # Выводит: {1, 2}

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