Методы pop() и popitem()

Тренажер по Python для пользователей с начальным уровнем подготовки.

Тренажер по Python

Этот модуль посвящен удалению элементов из словаря в Python с использованием методов pop() и popitem(). Вы научитесь безопасно извлекать значения по ключу, обрабатывать ситуации, когда ключ отсутствует, и удалять последние добавленные элементы.

Основные темы урока:

  • Метод pop(key, default): удаляет ключ и возвращает значение. Если ключа нет — возвращает default (или вызывает ошибку).
  • Метод popitem(): удаляет и возвращает последнюю добавленную пару (ключ, значение) в виде кортежа.

Выполните задания от простых упражнений на вставку кода до поиска ошибок и прогнозирования результата. Обращайте внимание на то, что именно возвращает каждый метод (значение или кортеж).

Список тем

Удаление элемента по ключу

id: 40023_task1

Вам нужно удалить ключ 'model' из словаря laptop и сохранить его значение в переменную. Используйте для этого стандартный метод удаления по ключу.

Заполните пропуски
laptop = {'brand': 'Dell', 'model': 'XPS 13', 'year': 2022}
model_name = laptop.input1S('model')
print(model_name)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Что удаляет popitem?

id: 40023_task2

В Python 3.7+ словари сохраняют порядок вставки. Метод popitem() удаляет последний добавленный элемент. Проанализируйте код и выберите, что именно вернет этот метод.

Выберите правильный вариант ответа
fruits = {}
fruits['apple'] = 5
fruits['banana'] = 8
fruits['orange'] = 12

removed = fruits.popitem()
print(removed)
Сообщения
Проверить
Показать подсказку

Безопасное удаление ключа

id: 40023_task3

Мы пытаемся удалить ключ 'status', которого нет в словаре. Чтобы программа не упала с ошибкой KeyError, добавьте второй аргумент в метод, который вернется, если ключ не найден. Пусть вернется строка 'Not found'.

Заполните пропуски
server = {'id': 404, 'ip': '192.168.1.1'}
status = server.pop('status', input1S)
print(status)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Сравнение pop() и popitem()

id: 40023_task4

Сопоставьте описание поведения метода с его названием. Обратите внимание на тип возвращаемого значения и необходимые аргументы.

Сопоставьте строки в правой части с соответствующими строками в левой по порядковому номеру
Удаляет по ключу и возвращает значение
Удаляет последний элемент и возвращает кортеж (ключ, значение)
Вызывает ошибку TypeError, если не передать аргументы
Вызывает ошибку TypeError, если передать аргументы
.pop()
.popitem()
.pop() (без дефолта)
.popitem()
Сообщения
Проверить
Показать подсказку

Ошибка в вызове метода

id: 40023_task5

Программист перепутал методы. Он хотел удалить конкретный ключ 'age', но использовал метод popitem, который не принимает аргументов. Исправьте название метода.

Найдите ошибку и исправьте
user = {'name': 'Alex', 'age': 25}
age = user.popitem('age')
print(f"Deleted age: {age}")
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Очистка конфигурации

id: 40023_task6

Заполните пропуски, чтобы скрипт корректно удалял данные.
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
pop
False
popitem()
True
remove
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Что возвращают методы?

id: 40023_task7

Распределите варианты вызова методов по категориям в зависимости от того, какой тип данных они вернут в результате успешного выполнения.

Перетяните элементы в соответствующие блоки
Возвращает Значение (Value)
Возвращает Кортеж (Key, Value)
{'a': 1}.pop('a')
{'a': 1}.popitem()
{'x': [1, 2]}.pop('x')
{'k': 'v', 'k2': 'v2'}.popitem()
Сообщения
Проверить
Показать подсказку

Скрипт обработки задач

id: 40023_task8

Соберите код, который создает словарь задач, извлекает из него задачу с ключом 'urgent' и выводит её.
Строка с popitem является лишней (decoy), так как по условию нам нужна конкретная задача, а не последняя.

Перетяните в правильном порядке строки из одного блока в другой
print(f"Doing: {task}")
task = todo.pop('urgent')
task = todo.popitem()
todo = {'urgent': 'Fix Bug', 'later': 'Write Docs'}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Математика с удалением

id: 40023_task9

Проанализируйте код. Мы удаляем два числа из словаря и складываем их. Напишите число, которое будет выведено на экран.

Что должно получиться?
nums = {'a': 10, 'b': 20, 'c': 30}
x = nums.pop('a')
y = nums.pop('b')
print(x + y)
Сообщения
Проверить
Показать подсказку

Поведение при пустом словаре

id: 40023_task10

Что произойдет при попытке вызвать popitem() у пустого словаря? Выберите правильный вариант ответа.

Выберите правильный вариант ответа
empty_dict = {}
try:
    item = empty_dict.popitem()
    print(item)
except Exception as e:
    print(type(e).__name__)
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру