В этом модуле мы углубимся в работу со словарями в Python, изучая три фундаментальных метода: .keys(), .values() и .items(). Словари — это не просто хранилища данных, но и структуры, по которым можно эффективно итерироваться. Вы узнаете, как отдельно получить список всех ключей, чтобы узнать, какие данные доступны, как извлечь только значения для проведения математических операций или анализа, и как работать с парами "ключ-значение" одновременно для полного перебора словаря.
Задания построены от простого к сложному: сначала мы разберем теоретическую базу и синтаксис методов, затем перейдем к исправлению распространенных ошибок при итерации, и закончим написанием логики для обработки данных и предсказанием результатов выполнения кода. Эти навыки критически важны для работы с JSON, базами данных и конфигурационными файлами в реальных проектах. View Object, возвращаемый этими методами, имеет свои особенности, которые мы также затронем.
- Модуль 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: Продвинутые возможности
Сопоставьте методы и возвращаемые данные
Каждый из методов словаря возвращает специфический объект представления (view object). Сопоставьте название метода с тем, что именно он возвращает.
.keys().values().items()Проверка наличия ключа
Заполните пропуски, чтобы проверить, есть ли ключ 'admin' в списке ключей словаря users.
users = {'admin': 1, 'guest': 2}
if 'admin' in users.input1S():
print("Администратор найден")Сумма значений словаря
Что выведет данный код? Мы используем встроенную функцию sum() для обработки значений словаря.
prices = {'apple': 100, 'banana': 200, 'orange': 50}
total = sum(prices.values())
print(total)Ошибка распаковки элементов
Код должен выводить название товара и его цену. Однако в цикле допущена ошибка выбора метода. Метод .keys() возвращает только один элемент (ключ), а цикл пытается распаковать его в две переменные (product, price). Исправьте метод на верный.
stock = {'monitor': 150, 'mouse': 20}for product, price in stock.keys(): print(f"{product}: {price}$")Что вернет print?
Распределите примеры вывода кода по методам, которые их сгенерировали. Представьте, что у нас есть словарь `d = {'a': 1}`.
Поиск ключа по значению
Нам нужно найти имя пользователя, у которого `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}")Красивый вывод меню
Соберите код, который выводит меню ресторана в формате "Блюдо - Цена". Строки должны идти в логическом порядке: объявление, цикл, вывод. Обратите внимание на переменные в 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}")Доступ по индексу после конвертации
Объекты `dict_keys` не поддерживают индексацию (нельзя написать `keys[0]`). Чтобы взять элемент по индексу, их часто превращают в список `list()`. Что выведет этот код? Введите число.
data = {'a': 10, 'b': 20, 'c': 30}
vals_list = list(data.values())
print(vals_list[1])Инверсия словаря
Заполните пропуски, чтобы создать новый словарь `inverted`, где ключи и значения поменяются местами (значения станут ключами).
original = {'a': 1, 'b': 2}
inverted = {}
for k, v in original.input1S():
inverted[input2S] = k
print(inverted) # Выведет {1: 'a', 2: 'b'}