В этом уроке мы погрузимся в работу со словарями в Python (dict), а именно — научимся получать доступ к их элементам. Вы узнаете, как извлекать значения по ключам, используя квадратные скобки, и что происходит, если ключа не существует. Мы разберем безопасный метод .get(), который помогает избежать аварийной остановки программы. Также мы рассмотрим методы для получения списков всех ключей, значений и пар, и научимся перебирать словарь в цикле. Задания построены от простого к сложному.
- Модуль 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: Продвинутые возможности
Получение значения по ключу
Вам дан словарь с информацией о пользователе. Выведите на экран имя пользователя, обратившись к соответствующему ключу словаря.
user_profile = {
'username': 'neo_anderson',
'level': 10
}
# Вывод имени пользователя
print(user_profile[input1S])Безопасный доступ с .get()
Используйте метод `.get()`, чтобы получить статус сервера. Если ключа 'status' нет в словаре, программа должна вернуть строку 'unknown', чтобы не вызвать ошибку.
server_config = {'host': '192.168.1.1', 'port': 8080}
# Получаем статус, если его нет - возвращаем 'unknown'
current_status = server_config.get(input1S, input2S)
print(current_status)Исправьте ошибку синтаксиса доступа
Программист пытался вывести цену товара, но перепутал синтаксис обращения к словарю с вызовом функции. Исправьте строку с выводом, используя квадратные скобки.
product = {'name': 'Laptop', 'price': 999}print(f"Price is: {product('price')}")Что выведет этот код?
Проанализируйте код. Мы пытаемся получить значение по ключу, которого нет в словаре, не используя метод .get(). Что произойдет при запуске?
colors = {'red': '#FF0000', 'green': '#00FF00'}
print(colors['blue'])Методы получения элементов
Словарь имеет специальные методы для получения разных частей данных: только ключей, только значений или пар сразу. Сопоставьте вызов метода с тем, что он возвращает.
dictionary.values()dictionary.keys()dictionary.items()Безопасный и небезопасный доступ
Распределите способы обращения к элементам словаря на две категории: те, что вызовут ошибку при отсутствии ключа (Небезопасные), и те, что вернут `None` или дефолтное значение (Безопасные).
data['missing_key']data.get('missing_key')data.get('missing_key', 0)data['existing_key']Проверка наличия ключа перед доступом
Соберите конструкцию, которая проверяет, есть ли 'password' в словаре `config`. Если есть — выводит его, иначе выводит сообщение "No password".
if 'password' in config: print(config['password'])else: print("No password")if 'password' in config.values():Вычисление с использованием словаря
Проанализируйте код. Обратите внимание, что мы обращаемся к одному существующему ключу и одному несуществующему (через get с дефолтным значением). Введите число, которое будет выведено.
numbers = {'a': 10, 'b': 20}
val1 = numbers['a']
val2 = numbers.get('c', 5)
print(val1 + val2)Логика обновления счетчика
Восстановите логику подсчета количества фруктов. Мы хотим увеличить счетчик для 'apple'. Если 'apple' уже есть в словаре, увеличиваем значение на 1. Если нет — создаем запись со значением 1.
fruit = 'apple'basket = {'banana': 2}if fruit in basket: basket[fruit] += 1else: basket[fruit] = 1print(basket)