Словари в Python
Словари в Python — это неупорядоченные коллекции данных, которые хранят пары "ключ-значение". Каждый элемент в словаре имеет уникальный ключ, который используется для доступа к соответствующему значению.
Создание словаря
Словарь создается с помощью фигурных скобок {}
, где каждый элемент состоит из пары ключ-значение, разделенных двоеточием.
# Создание словаря
person = {'name': 'Alice', 'age': 25, 'city': 'New York'}
# Пустой словарь
empty_dict = {}
Доступ к элементам
Для доступа к элементам словаря используется ключ
Если ключ не существует, возникнет ошибка KeyError
person = {'name': 'Alice', 'age': 25, 'city': 'New York'}
# Доступ к элементу по ключу
print(person['name']) # Alice
print(person['age']) # 25
Добавление и изменение элементов
Чтобы добавить или изменить элемент, нужно просто указать ключ и присвоить ему новое значение
person = {'name': 'Alice', 'age': 25}
# Изменение значения по ключу
person['age'] = 26
# Добавление нового элемента
person['city'] = 'New York'
print(person) # {'name': 'Alice', 'age': 26, 'city': 'New York'}
Удаление элементов
Для удаления элемента из словаря используется метод del
или метод pop()
person = {'name': 'Alice', 'age': 25, 'city': 'New York'}
# Удаление элемента по ключу
del person['age']
# Удаление и возвращение элемента с помощью pop()
city = person.pop('city')
print(person) # {'name': 'Alice'}
print(city) # 'New York'
Методы словарей
get()
Метод get()
возвращает значение по ключу, если он существует, и None
, если ключ отсутствует. Также можно указать значение по умолчанию
person = {'name': 'Alice', 'age': 25}
# Получение значения по ключу
name = person.get('name')
age = person.get('age')
address = person.get('address', 'Unknown') # Если ключ не найден, вернется 'Unknown'
print(name) # Alice
print(address) # Unknown
keys(), values(), items()
Методы keys()
, values()
и items()
возвращают представление всех ключей, значений и пар ключ-значение в словаре соответственно
person = {'name': 'Alice', 'age': 25}
# Получение всех ключей
keys = person.keys()
print(keys) # dict_keys(['name', 'age'])
# Получение всех значений
values = person.values()
print(values) # dict_values(['Alice', 25])
# Получение всех пар ключ-значение
items = person.items()
print(items) # dict_items([('name', 'Alice'), ('age', 25)])
update()
Метод update()
позволяет обновить словарь, добавив новые элементы или изменив существующие
person = {'name': 'Alice', 'age': 25}
# Обновление словаря
person.update({'city': 'New York', 'age': 26})
print(person) # {'name': 'Alice', 'age': 26, 'city': 'New York'}
Операции над словарями
Проверка наличия ключа
Для проверки наличия ключа в словаре используется оператор in
person = {'name': 'Alice', 'age': 25}
# Проверка наличия ключа
print('name' in person) # True
print('address' in person) # False
Доступ к значениям с использованием setdefault()
Метод setdefault()
возвращает значение по ключу, если он существует, и если нет — добавляет ключ с заданным значением
person = {'name': 'Alice', 'age': 25}
# Если ключ 'address' не существует, он будет добавлен со значением 'Unknown'
address = person.setdefault('address', 'Unknown')
print(address) # Unknown
print(person) # {'name': 'Alice', 'age': 25, 'address': 'Unknown'}
Вложенные словари
Словари могут содержать другие словари, образуя структуры данных с несколькими уровнями вложенности
person = {
'name': 'Alice',
'address': {'city': 'New York', 'zip': '10001'},
}
# Доступ к вложенному словарю
city = person['address']['city']
print(city) # New York
Циклы и словари
Словари активно используются в циклах, чтобы пройтись по ключам, значениям или парам "ключ-значение"
person = {'name': 'Alice', 'age': 25, 'city': 'New York'}
# Перебор ключей
for key in person:
print(key)
# Перебор значений
for value in person.values():
print(value)
# Перебор пар ключ-значение
for key, value in person.items():
print(key, value)
Заключение
Словари — это важный тип данных в Python, который позволяет эффективно работать с коллекциями данных, где элементы ассоциируются с уникальными ключами. С помощью методов и операций над словарями можно гибко манипулировать данными, добавлять, изменять и удалять элементы, а также удобно итерировать по данным