Доступ к элементам словаря

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

Тренажер по Python

В этом уроке мы погрузимся в работу со словарями в Python (dict), а именно — научимся получать доступ к их элементам. Вы узнаете, как извлекать значения по ключам, используя квадратные скобки, и что происходит, если ключа не существует. Мы разберем безопасный метод .get(), который помогает избежать аварийной остановки программы. Также мы рассмотрим методы для получения списков всех ключей, значений и пар, и научимся перебирать словарь в цикле. Задания построены от простого к сложному.

Список тем

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

id: 40019_task1

Вам дан словарь с информацией о пользователе. Выведите на экран имя пользователя, обратившись к соответствующему ключу словаря.

Заполните пропуски
user_profile = {
    'username': 'neo_anderson',
    'level': 10
}
# Вывод имени пользователя
print(user_profile[input1S])
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Безопасный доступ с .get()

id: 40019_task2

Используйте метод `.get()`, чтобы получить статус сервера. Если ключа 'status' нет в словаре, программа должна вернуть строку 'unknown', чтобы не вызвать ошибку.

Заполните пропуски
server_config = {'host': '192.168.1.1', 'port': 8080}

# Получаем статус, если его нет - возвращаем 'unknown'
current_status = server_config.get(input1S, input2S)

print(current_status)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Исправьте ошибку синтаксиса доступа

id: 40019_task3

Программист пытался вывести цену товара, но перепутал синтаксис обращения к словарю с вызовом функции. Исправьте строку с выводом, используя квадратные скобки.

Найдите ошибку и исправьте
product = {'name': 'Laptop', 'price': 999}
print(f"Price is: {product('price')}")
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Что выведет этот код?

id: 40019_task4

Проанализируйте код. Мы пытаемся получить значение по ключу, которого нет в словаре, не используя метод .get(). Что произойдет при запуске?

Выберите правильный вариант ответа
colors = {'red': '#FF0000', 'green': '#00FF00'}
print(colors['blue'])
Сообщения
Проверить
Показать подсказку

Методы получения элементов

id: 40019_task5

Словарь имеет специальные методы для получения разных частей данных: только ключей, только значений или пар сразу. Сопоставьте вызов метода с тем, что он возвращает.

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

Безопасный и небезопасный доступ

id: 40019_task7

Распределите способы обращения к элементам словаря на две категории: те, что вызовут ошибку при отсутствии ключа (Небезопасные), и те, что вернут `None` или дефолтное значение (Безопасные).

Перетяните элементы в соответствующие блоки
Может вызвать ошибку (KeyError)
Безопасный доступ (не вызовет ошибку)
data['missing_key']
data.get('missing_key')
data.get('missing_key', 0)
data['existing_key']
Сообщения
Проверить
Показать подсказку

Проверка наличия ключа перед доступом

id: 40019_task8

Соберите конструкцию, которая проверяет, есть ли 'password' в словаре `config`. Если есть — выводит его, иначе выводит сообщение "No password".

Перетяните в правильном порядке строки из одного блока в другой
if 'password' in config:
    print(config['password'])
else:
    print("No password")
if 'password' in config.values():
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Вычисление с использованием словаря

id: 40019_task9

Проанализируйте код. Обратите внимание, что мы обращаемся к одному существующему ключу и одному несуществующему (через get с дефолтным значением). Введите число, которое будет выведено.

Что должно получиться?
numbers = {'a': 10, 'b': 20}
val1 = numbers['a']
val2 = numbers.get('c', 5)
print(val1 + val2)
Сообщения
Проверить
Показать подсказку

Логика обновления счетчика

id: 40019_task10

Восстановите логику подсчета количества фруктов. Мы хотим увеличить счетчик для 'apple'. Если 'apple' уже есть в словаре, увеличиваем значение на 1. Если нет — создаем запись со значением 1.

Расставьте строки в правильном порядке
fruit = 'apple'
basket = {'banana': 2}
if fruit in basket:
    basket[fruit] += 1
else:
    basket[fruit] = 1
print(basket)
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру