Методы keys(), values(), items()

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

Тренажер по Python

В этом модуле мы углубимся в работу со словарями в Python, изучая три фундаментальных метода: .keys(), .values() и .items(). Словари — это не просто хранилища данных, но и структуры, по которым можно эффективно итерироваться. Вы узнаете, как отдельно получить список всех ключей, чтобы узнать, какие данные доступны, как извлечь только значения для проведения математических операций или анализа, и как работать с парами "ключ-значение" одновременно для полного перебора словаря.

Задания построены от простого к сложному: сначала мы разберем теоретическую базу и синтаксис методов, затем перейдем к исправлению распространенных ошибок при итерации, и закончим написанием логики для обработки данных и предсказанием результатов выполнения кода. Эти навыки критически важны для работы с JSON, базами данных и конфигурационными файлами в реальных проектах. View Object, возвращаемый этими методами, имеет свои особенности, которые мы также затронем.

Список тем

Сопоставьте методы и возвращаемые данные

id: 40022_task_dict_1

Каждый из методов словаря возвращает специфический объект представления (view object). Сопоставьте название метода с тем, что именно он возвращает.

Сопоставьте строки в правой части с соответствующими строками в левой по порядковому номеру
Возвращает только ключи словаря
Возвращает только значения словаря
Возвращает пары (ключ, значение) в виде кортежей
.keys()
.values()
.items()
Сообщения
Проверить
Показать подсказку

Проверка наличия ключа

id: 40022_task_dict_2

Заполните пропуски, чтобы проверить, есть ли ключ 'admin' в списке ключей словаря users.

Заполните пропуски
users = {'admin': 1, 'guest': 2}
if 'admin' in users.input1S():
    print("Администратор найден")
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Сумма значений словаря

id: 40022_task_dict_3

Что выведет данный код? Мы используем встроенную функцию sum() для обработки значений словаря.

Выберите правильный вариант ответа
prices = {'apple': 100, 'banana': 200, 'orange': 50}
total = sum(prices.values())
print(total)
Сообщения
Проверить
Показать подсказку

Ошибка распаковки элементов

id: 40022_task_dict_4

Код должен выводить название товара и его цену. Однако в цикле допущена ошибка выбора метода. Метод .keys() возвращает только один элемент (ключ), а цикл пытается распаковать его в две переменные (product, price). Исправьте метод на верный.

Найдите ошибку и исправьте
stock = {'monitor': 150, 'mouse': 20}
for product, price in stock.keys():
    print(f"{product}: {price}$")
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Что вернет print?

id: 40022_task_dict_5

Распределите примеры вывода кода по методам, которые их сгенерировали. Представьте, что у нас есть словарь `d = {'a': 1}`.

Перетяните элементы в соответствующие блоки
print(d.keys())
print(d.values())
print(d.items())
dict_keys(['a'])
dict_values([1])
dict_items([('a', 1)])
Сообщения
Проверить
Показать подсказку

Поиск ключа по значению

id: 40022_task_dict_6

Нам нужно найти имя пользователя, у которого `id` равен 555. Заполните пропуски в цикле, используя правильные переменные и методы из банка.

Нужно правильно расставить в пропуски предложенные варианты
database = {'Alex': 101, 'Maria': 555, 'Oleg': 202}

target_id = 555

for name, uid in database.input1S():
    if input2S == target_id:
        print(f"Found: {input3S}")
items
uid
name
values
keys
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Красивый вывод меню

id: 40022_task_dict_7

Соберите код, который выводит меню ресторана в формате "Блюдо - Цена". Строки должны идти в логическом порядке: объявление, цикл, вывод. Обратите внимание на переменные в f-строке.

Перетяните в правильном порядке строки из одного блока в другой
print(f"{dish} - {cost}")
menu = {'Pizza': 12, 'Soup': 5}
for dish, cost in menu.items():
for dish in menu.values():
print(f"{cost} - {dish}")
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Доступ по индексу после конвертации

id: 40022_task_dict_8

Объекты `dict_keys` не поддерживают индексацию (нельзя написать `keys[0]`). Чтобы взять элемент по индексу, их часто превращают в список `list()`. Что выведет этот код? Введите число.

Что должно получиться?
data = {'a': 10, 'b': 20, 'c': 30}
vals_list = list(data.values())
print(vals_list[1])
Сообщения
Проверить
Показать подсказку

Инверсия словаря

id: 40022_task_dict_9

Заполните пропуски, чтобы создать новый словарь `inverted`, где ключи и значения поменяются местами (значения станут ключами).

Заполните пропуски
original = {'a': 1, 'b': 2}
inverted = {}
for k, v in original.input1S():
    inverted[input2S] = k

print(inverted) # Выведет {1: 'a', 2: 'b'}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку
🚀 Визуализатор кода
0 / 0
Скорость:
Режим:
💡 Что происходит?
Загрузите пример для начала...
🤔
Проверка знаний
История шагов
Готов
НайтиКурс.Ру