Словари (dictionaries) — это одна из самых мощных и часто используемых структур данных в Python.
Они представляют собой неупорядоченные коллекции пар "ключ-значение", где каждый ключ уникален.
Словари оптимизированы для быстрого поиска значений по ключу.
Создание словаря
Словарь создается с помощью фигурных скобок {} или функции dict().
Пары "ключ-значение" разделяются запятыми, а ключ и значение разделяются двоеточием.
Пример создания словаря:
# Пример создания словаря
my_dict = {"name": "Alice", "age": 25, "city": "New York"}
print(my_dict) # Вывод: {'name': 'Alice', 'age': 25, 'city': 'New York'}
Также можно создать словарь с помощью функции dict():
Для доступа к значению по ключу используется квадратные скобки [] или метод 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 (или значение по умолчанию, если оно указано).
Вы можете перебирать ключи, значения или пары "ключ-значение" с помощью цикла 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}
Таким образом, вы получаете словарь, где каждому числу соответствует его квадрат.