Словари

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


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

Словарь создается с помощью фигурных скобок {} или функции dict().
Пары "ключ-значение" разделяются запятыми, а ключ и значение разделяются двоеточием.

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

Также можно создать словарь с помощью функции dict():

my_dict = dict(name="Alice", age=25, city="New York") print(my_dict) # Вывод: {'name': 'Alice', 'age': 25, 'city': 'New York'}

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

Для доступа к значению по ключу используется квадратные скобки [] или метод get().

Пример:
my_dict = {"name": "Alice", "age": 25, "city": "New York"} # Доступ по ключу print(my_dict["name"]) # Вывод: Alice print(my_dict["age"]) # Вывод: 25 # Использование метода get() print(my_dict.get("city")) # Вывод: New York

Если ключ отсутствует в словаре:

  • Использование [] вызовет ошибку KeyError.
  • Метод get() вернет None (или значение по умолчанию, если оно указано).
print(my_dict.get("country")) # Вывод: None print(my_dict.get("country", "Unknown")) # Вывод: Unknown (значение по умолчанию)

Изменение и добавление элементов

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

Пример:
my_dict = {"name": "Alice", "age": 25} # Изменение значения my_dict["age"] = 26 print(my_dict) # Вывод: {'name': 'Alice', 'age': 26} # Добавление новой пары "ключ-значение" my_dict["city"] = "New York" print(my_dict) # Вывод: {'name': 'Alice', 'age': 26, 'city': 'New York'}

Удаление элементов

Для удаления элементов из словаря можно использовать:

  • del — удаляет пару по ключу.
  • pop() — удаляет пару по ключу и возвращает значение.
  • popitem() — удаляет и возвращает последнюю пару (в Python 3.7+).
  • clear() — очищает весь словарь.
Пример:
my_dict = {"name": "Alice", "age": 25, "city": "New York"} # Удаление с помощью del del my_dict["age"] print(my_dict) # Вывод: {'name': 'Alice', 'city': 'New York'} # Удаление с помощью pop() city = my_dict.pop("city") print(city) # Вывод: New York print(my_dict) # Вывод: {'name': 'Alice'} # Удаление последней пары с помощью popitem() my_dict = {"name": "Alice", "age": 25} last_item = my_dict.popitem() print(last_item) # Вывод: ('age', 25) print(my_dict) # Вывод: {'name': 'Alice'} # Очистка словаря my_dict.clear() print(my_dict) # Вывод: {}

Основные методы словарей

  • keys() — возвращает список всех ключей.
  • values() — возвращает список всех значений.
  • items() — возвращает список всех пар "ключ-значение".
  • update() — обновляет словарь, добавляя пары из другого словаря.
Пример:
my_dict = {"name": "Alice", "age": 25, "city": "New York"} # Получение ключей print(my_dict.keys()) # Вывод: dict_keys(['name', 'age', 'city']) # Получение значений print(my_dict.values()) # Вывод: dict_values(['Alice', 25, 'New York']) # Получение пар "ключ-значение" print(my_dict.items()) # Вывод: dict_items([('name', 'Alice'), ('age', 25), ('city', 'New York')]) # Обновление словаря my_dict.update({"age": 26, "country": "USA"}) print(my_dict) # Вывод: {'name': 'Alice', 'age': 26, 'city': 'New York', 'country': 'USA'}

Итерация по словарю

Вы можете перебирать ключи, значения или пары "ключ-значение" с помощью цикла for.

Пример:
my_dict = {"name": "Alice", "age": 25, "city": "New York"} # Итерация по ключам for key in my_dict: print(key) # Вывод: name, age, city # Итерация по значениям for value in my_dict.values(): print(value) # Вывод: Alice, 25, New York # Итерация по парам "ключ-значение" for key, value in my_dict.items(): print(f"{key}: {value}")

Генерация словарей (Dictionary Comprehension)

Аналогично спискам, словари можно создавать с помощью генераторов.

Пример:
# Пример: создание словаря с квадратами чисел squares = {x: x**2 for x in range(1, 6)} print(squares) # Вывод: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

Вложенные словари

Словари могут содержать другие словари, списки или любые другие типы данных.

Пример:
# Пример вложенного словаря users = { "user1": {"name": "Alice", "age": 25}, "user2": {"name": "Bob", "age": 30} } # Доступ к вложенным данным print(users["user1"]["name"]) # Вывод: Alice print(users["user2"]["age"]) # Вывод: 30

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


Примеры решения задач

Задача: Создайте словарь, представляющий информацию о человеке (имя, возраст, город), и выведите её.

Решение:
# Создание словаря с информацией о человеке person = { "name": "Alice", "age": 25, "city": "New York" } # Способ 1: Простой вывод print("Способ 1: Простой вывод") print(person) # Способ 2: Форматированный вывод print("\nСпособ 2: Форматированный вывод") print(f"Имя: {person['name']}") print(f"Возраст: {person['age']}") print(f"Город: {person['city']}")
Вывод:
Способ 1: Простой вывод
{'name': 'Alice', 'age': 25, 'city': 'New York'}

Способ 2: Форматированный вывод
Имя: Alice
Возраст: 25
Город: New York

Задача: Создайте словарь, где ключами являются числа от 1 до 5, а значениями — их квадраты, используя Dictionary Comprehension.

Решение:
squares = {x: x**2 for x in range(1, 6)} print(squares)
Объяснение:
  • Мы используем цикл for, который проходит по числам от 1 до 5 (range(1, 6)).
  • Для каждого числа x мы создаем пару "ключ-значение", где ключ — это само число x, а значение — квадрат этого числа x**2.
  • В результате получаем словарь, где ключи — это числа от 1 до 5, а значения — их квадраты.
Вывод:
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

Таким образом, вы получаете словарь, где каждому числу соответствует его квадрат.

Больше задач для практики вы найдёте в задачнике.


Комментарии

Добавить комментарий

Чтобы оставить комменатрий необходимо Авторизоваться