Словарь: создание и базовые операции
Уроки курсаСловарь: создание и базовые операции
Удаление пар методом dict.pop() и полный цикл операций
Последняя базовая операция со словарём — удаление пары по ключу. Для этого есть метод pop().
dict.pop(key)
Метод удаляет пару с указанным ключом и возвращает удалённое значение:
person = {'name': 'Анна', 'age': 26, 'city': 'Москва'}
udалённый_город = person.pop('city')
print(удалённый_город) # Москва
print(person) # {'name': 'Анна', 'age': 26}
Возвращаемое значение — не мелочь: оно позволяет одновременно удалить ключ и сохранить его содержимое в переменную, если оно ещё нужно.
Если попытаться удалить ключ, которого нет, pop() выбросит KeyError — поведение такое же, как у d[key]. Чтобы этого избежать, методу можно передать второй аргумент — значение по умолчанию:
result = person.pop('phone', None)
print(result) # None — ключа нет, но ошибки тоже нет
С default-аргументом pop() работает безопасно: если ключ есть — удаляет и возвращает значение, если нет — возвращает default и ничего не трогает.
Сквозной пример: все четыре операции
Посмотрим, как создание, чтение, изменение и удаление работают вместе на одном словаре:
# 1. Создание
person = {'name': 'Анна', 'age': 25}
# 2. Чтение
print(person['name']) # Анна
print(person.get('phone', 'нет')) # нет
# 3. Изменение существующего ключа и добавление нового
person['age'] = 26
person['city'] = 'Москва'
print(person) # {'name': 'Анна', 'age': 26, 'city': 'Москва'}
# 4. Удаление
udалённый = person.pop('city')
print(удалённый) # Москва
print(person) # {'name': 'Анна', 'age': 26}
Здесь видно, что все операции используют один и тот же объект person и не конфликтуют между собой. Создание через литерал {}, доступ через [] или get(), запись через d[key] = value, удаление через pop() — это полный рабочий набор для большинства задач со словарём.
В следующем уроке словарь перестанет быть статичным объектом: научимся перебирать все его пары через items(), keys() и values(), а значения смогут быть не только строками и числами, но и вложенными списками.
