Создание словарей

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

Тренажер по Python

В этом модуле мы переходим к изучению одной из самых мощных структур данных в Python — словарям (dictionary). Словари позволяют хранить данные в формате «ключ-значение», что делает их идеальными для создания баз данных, настроек конфигурации и работы с JSON.

Вы научитесь создавать словари разными способами: используя литералы (фигурные скобки), конструктор dict(), а также преобразуя другие структуры данных. Мы разберем, какие типы данных могут быть ключами, а какие — нет, и потренируемся избегать распространенных синтаксических ошибок при инициализации. Будьте внимательны к деталям: двоеточиям, запятым и кавычкам.

Список тем

Тип данных пустой конструкции

id: 40018_task1

В Python фигурные скобки используются не только для словарей, но и для множеств. Посмотрите на код и определите, какой тип данных будет создан при использовании пустых фигурных скобок.

Выберите правильный вариант ответа
data = {}
print(type(data))
Сообщения
Проверить
Показать подсказку

Литерал словаря

id: 40018_task2

Заполните пропуски, чтобы создать словарь `user` с двумя парами «ключ-значение». Обратите внимание на синтаксис разделения ключей и значений, а также элементов между собой.

Заполните пропуски
user = input1S 'login' input2S 'admin' input3S 'active': True input4S
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Допустимые ключи словаря

id: 40018_task3

Ключом словаря может быть только **неизменяемый** (hashable) тип данных. Распределите предложенные объекты на те, что могут быть ключом, и те, что вызовут ошибку `TypeError`.

Перетяните элементы в соответствующие блоки
Могут быть ключом
Ошибка (нельзя использовать)
"username"
404
(1, 2)
["a", "b"]
{'k': 'v'}
3.14
Сообщения
Проверить
Показать подсказку

Создание через конструктор dict()

id: 40018_task4

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

Нужно правильно расставить в пропуски предложенные варианты
config = input1S(host=input2S, port=input3S)
dict
"localhost"
8000
{}
"host"
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Синтаксис внутри словаря

id: 40018_task5

В коде допущена распространенная ошибка при объявлении словаря через литерал `{}`. Найдите строку с ошибкой и исправьте синтаксис присваивания значения ключу.

Найдите ошибку и исправьте
product = {
    'id': 105,
    'price' = 99.99,
    'stock': True
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Способы создания словарей

id: 40018_task6

Сопоставьте пример кода (слева) с описанием метода создания словаря (справа).

Сопоставьте строки в правой части с соответствующими строками в левой по порядковому номеру
Создание с помощью литерала
Использование именованных аргументов в конструкторе
Преобразование списка кортежей в словарь
d = {'a': 1, 'b': 2}
d = dict(a=1, b=2)
d = dict([('a', 1), ('b', 2)])
Сообщения
Проверить
Показать подсказку

Словарь из списков (zip)

id: 40018_task7

Соберите код, который создает словарь, объединяя два списка: список ключей и список значений. Используйте функцию `zip` внутри конструктора `dict`. Одна строка содержит ошибку использования `zip`.

Перетяните в правильном порядке строки из одного блока в другой
values = [10, 20]
keys = ['x', 'y']
my_dict = dict(zip(keys, values))
my_dict = zip(dict(keys, values))
print(my_dict)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Словарь с перезаписью ключей

id: 40018_task8

Посмотрите на код создания словаря. В нем дважды используется ключ `'score'`. Какое значение будет выведено на экран? Введите число.

Что должно получиться?
game_data = {
    'player': 'Alex',
    'score': 100,
    'level': 5,
    'score': 150
}
print(game_data['score'])
Сообщения
Проверить
Показать подсказку

Создание вложенного словаря

id: 40018_task9

Расставьте строки кода так, чтобы создать словарь `database`, содержащий внутри себя другой словарь под ключом `user1`.

Расставьте строки в правильном порядке
database = {
    'user1': {
        'name': 'Alice',
        'role': 'admin'
    }
}
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру