Работа с комплексными структурами. Списки и массивы (Lists, Tuples, Dictionaries)

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

Списки (Lists)

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

Создание и доступ

# Создание списка
fruits = ["apple", "banana", "cherry"]

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

Изменение элементов

# Изменение элемента списка
fruits[1] = "blueberry"
print(fruits)  # Вывод: ['apple', 'blueberry', 'cherry']

Методы списков

  • append()

Добавляет элемент в конец списка.

fruits.append("date")
print(fruits)  # Вывод: ['apple', 'blueberry', 'cherry', 'date']
  • extend()

Добавляет элементы из другого итерируемого объекта.

fruits.extend(["elderberry", "fig"])
print(fruits)  # Вывод: ['apple', 'blueberry', 'cherry', 'date', 'elderberry', 'fig']
  • insert()

Вставляет элемент на указанную позицию.

fruits.insert(1, "apricot")
print(fruits)  # Вывод: ['apple', 'apricot', 'blueberry', 'cherry', 'date', 'elderberry', 'fig']
  • remove()

Удаляет первое вхождение указанного значения.

fruits.remove("date")
print(fruits)  # Вывод: ['apple', 'apricot', 'blueberry', 'cherry', 'elderberry', 'fig']
  • pop()

Удаляет элемент по индексу и возвращает его.

removed_fruit = fruits.pop(2)
print(removed_fruit)  # Вывод: blueberry
print(fruits)         # Вывод: ['apple', 'apricot', 'cherry', 'elderberry', 'fig']

Срезы

# Срезы списка
sublist = fruits[1:4]
print(sublist)  # Вывод: ['apricot', 'cherry', 'elderberry']

Кортежи (Tuples)

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

Создание и доступ

# Создание кортежа
coordinates = (10.0, 20.0)

# Доступ к элементам кортежа
print(coordinates[0])  # Вывод: 10.0
print(coordinates[1])  # Вывод: 20.0

Неизменяемость

Попытка изменить элементы кортежа вызовет ошибку.

# Попытка изменения элемента кортежа
try:
    coordinates[0] = 15.0
except TypeError as e:
    print(e)  # Вывод: 'tuple' object does not support item assignment

Методы кортежей

  • count()

Подсчитывает количество вхождений элемента.

numbers = (1, 2, 3, 2, 2, 4)
count = numbers.count(2)
print(count)  # Вывод: 3
  • index()

Находит индекс первого вхождения элемента.

index = numbers.index(3)
print(index)  # Вывод: 2

Словари (Dictionaries)

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

Создание и доступ

# Создание словаря
person = {"name": "Alice", "age": 30, "city": "New York"}

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

Изменение элементов

# Изменение значения по ключу
person["age"] = 31
print(person)  # Вывод: {'name': 'Alice', 'age': 31, 'city': 'New York'}

Методы словарей

  • get()

Получает значение по ключу, возвращает None если ключ не найден.

age = person.get("age")
print(age)  # Вывод: 31

# Использование значения по умолчанию
gender = person.get("gender", "Not specified")
print(gender)  # Вывод: Not specified
  • keys()

Возвращает представление всех ключей в словаре.

keys = person.keys()
print(keys)  # Вывод: dict_keys(['name', 'age', 'city'])
  • values()

Возвращает представление всех значений в словаре.

values = person.values()
print(values)  # Вывод: dict_values(['Alice', 31, 'New York'])
  • items()

Возвращает представление всех пар ключ-значение.

items = person.items()
print(items)  # Вывод: dict_items([('name', 'Alice'), ('age', 31), ('city', 'New York')])
  • pop()

Удаляет элемент по ключу и возвращает его значение.

city = person.pop("city")
print(city)  # Вывод: New York
print(person)  # Вывод: {'name': 'Alice', 'age': 31}
  • popitem()

Удаляет и возвращает последнюю вставленную пару ключ-значение.

item = person.popitem()
print(item)  # Вывод: ('age', 31)
print(person)  # Вывод: {'name': 'Alice'}
  • update()

Обновляет словарь значениями из другого словаря или итерируемого объекта.

person.update({"city": "Los Angeles", "email": "alice@example.com"})
print(person)  # Вывод: {'name': 'Alice', 'city': 'Los Angeles', 'email': 'alice@example.com'}

Заключение

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

Last updated