Этот модуль посвящен удалению элементов из словаря в Python с использованием методов pop() и popitem(). Вы научитесь безопасно извлекать значения по ключу, обрабатывать ситуации, когда ключ отсутствует, и удалять последние добавленные элементы.
Основные темы урока:
- Метод pop(key, default): удаляет ключ и возвращает значение. Если ключа нет — возвращает default (или вызывает ошибку).
- Метод popitem(): удаляет и возвращает последнюю добавленную пару (ключ, значение) в виде кортежа.
Выполните задания от простых упражнений на вставку кода до поиска ошибок и прогнозирования результата. Обращайте внимание на то, что именно возвращает каждый метод (значение или кортеж).
- Модуль 1: Основы синтаксиса Python
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Арифметические операторы (+, -, *, /).
- Целочисленное деление и остаток (// и %).
- Возведение в степень (**).
- Операторы сравнения.
- Логические операторы (and, or, not).
- Операторы присваивания (=, +=, -=).
- Операторы принадлежности (in, not in).
- Операторы идентичности (is, is not).
- Битовые операторы.
- Тернарный оператор.
- Модуль 4: Ввод и вывод данных
- Модуль 5: Условные конструкции
- Модуль 6: Циклы
- Модуль 7: Строки
- Модуль 8: Списки
- Модуль 9: Кортежи
- Модуль 10: Словари
- Модуль 11: Множества
- Модуль 12: Функции
- Модуль 13: Встроенные функции
- Модуль 14: Работа с файлами
- Модуль 15: Обработка исключений
- Модуль 16: Модули и пакеты
- Модуль 17: ООП - Основы
- Модуль 18: ООП - Продвинутый уровень
- Модуль 19: Декораторы
- Модуль 20: Генераторы и итераторы
- Модуль 21: Регулярные выражения
- Модуль 22: Дата и время
- Модуль 23: Математические операции
- Модуль 24: Работа с сетью
- Модуль 25: Асинхронное программирование
- Модуль 26: Многопоточность
- Модуль 27: Тестирование
- Модуль 28: Базы данных
- Модуль 29: Алгоритмы и структуры данных
- Модуль 30: Продвинутые возможности
Удаление элемента по ключу
Вам нужно удалить ключ 'model' из словаря laptop и сохранить его значение в переменную. Используйте для этого стандартный метод удаления по ключу.
laptop = {'brand': 'Dell', 'model': 'XPS 13', 'year': 2022}
model_name = laptop.input1S('model')
print(model_name)Что удаляет popitem?
В Python 3.7+ словари сохраняют порядок вставки. Метод popitem() удаляет последний добавленный элемент. Проанализируйте код и выберите, что именно вернет этот метод.
fruits = {}
fruits['apple'] = 5
fruits['banana'] = 8
fruits['orange'] = 12
removed = fruits.popitem()
print(removed)Безопасное удаление ключа
Мы пытаемся удалить ключ 'status', которого нет в словаре. Чтобы программа не упала с ошибкой KeyError, добавьте второй аргумент в метод, который вернется, если ключ не найден. Пусть вернется строка 'Not found'.
server = {'id': 404, 'ip': '192.168.1.1'}
status = server.pop('status', input1S)
print(status)Сравнение pop() и popitem()
Сопоставьте описание поведения метода с его названием. Обратите внимание на тип возвращаемого значения и необходимые аргументы.
.pop().popitem().pop() (без дефолта).popitem()Ошибка в вызове метода
Программист перепутал методы. Он хотел удалить конкретный ключ 'age', но использовал метод popitem, который не принимает аргументов. Исправьте название метода.
user = {'name': 'Alex', 'age': 25}age = user.popitem('age')print(f"Deleted age: {age}")Очистка конфигурации
Заполните пропуски, чтобы скрипт корректно удалял данные.
1. В переменную debug нужно сохранить значение ключа 'debug', удалив его. Если ключа нет — вернуть False.
2. В переменную last_entry нужно сохранить последнюю добавленную настройку (и ключ, и значение).
config = {'theme': 'dark', 'version': 1.0, 'debug': True}
debug_mode = config.input1S('debug', input2S)
last_entry = config.input3SЧто возвращают методы?
Распределите варианты вызова методов по категориям в зависимости от того, какой тип данных они вернут в результате успешного выполнения.
{'a': 1}.pop('a'){'a': 1}.popitem(){'x': [1, 2]}.pop('x'){'k': 'v', 'k2': 'v2'}.popitem()Скрипт обработки задач
Соберите код, который создает словарь задач, извлекает из него задачу с ключом 'urgent' и выводит её.
Строка с popitem является лишней (decoy), так как по условию нам нужна конкретная задача, а не последняя.
print(f"Doing: {task}")task = todo.pop('urgent')task = todo.popitem()todo = {'urgent': 'Fix Bug', 'later': 'Write Docs'}Математика с удалением
Проанализируйте код. Мы удаляем два числа из словаря и складываем их. Напишите число, которое будет выведено на экран.
nums = {'a': 10, 'b': 20, 'c': 30}
x = nums.pop('a')
y = nums.pop('b')
print(x + y)Поведение при пустом словаре
Что произойдет при попытке вызвать popitem() у пустого словаря? Выберите правильный вариант ответа.
empty_dict = {}
try:
item = empty_dict.popitem()
print(item)
except Exception as e:
print(type(e).__name__)