Изменение и добавление значений
Значения в словаре можно менять. Новое значение присваивают ключу так же, как переменной, через =:
player = {"name": "Ниндзя", "level": 1, "lives": 3}
player["level"] = 2
print(player){'name': 'Ниндзя', 'level': 2, 'lives': 3}Можно и вычислить новое значение из старого, как с переменными: player["lives"] = player["lives"] - 1 или короче, player["lives"] -= 1.
Обратите внимание на разницу: когда вы создаёте словарь, пару записывают внутри фигурных скобок с двоеточием ("level": 1). Когда позже меняете значение, используют квадратные скобки и = (player["level"] = 2).
Если присвоить значение ключу, которого в словаре ещё нет, Python добавит новую пару в конец:
player = {"name": "Ниндзя", "level": 1, "lives": 3}
player["weapon"] = "меч"
print(player){'name': 'Ниндзя', 'level': 1, 'lives': 3, 'weapon': 'меч'}Каждый ключ может быть в словаре только один раз. Когда вы присваиваете значение уже существующему ключу, Python не добавляет вторую пару с таким же ключом, а заменяет значение. Это удобно, но значит и то, что об опечатке вас никто не предупредит: player["Level"] = 2 не меняет "level". Оно добавляет новый ключ "Level", а Ниндзя остаётся на уровне 1.
Можно начать и с пустого словаря, {}, и добавлять в него пары по одной. А len(), которую вы знаете по спискам и тексту, говорит, сколько пар в словаре:
player = {}
player["name"] = "Ниндзя"
player["level"] = 1
print(player)
print(len(player)){'name': 'Ниндзя', 'level': 1}
2Чтобы удалить пару, используйте .pop() с её ключом, как вы используете его с индексом в списке: player.pop("level") удаляет пару с ключом "level" и возвращает её значение.
Задание
- 1
Ниндзя прошёл первый уровень. В конце программы увеличьте значение
"level"на 1 и снова выведитеplayer. Вторая строка должна быть{'name': 'Ниндзя', 'level': 2, 'lives': 3}. - 2
Ниндзя нашёл меч. В конце программы добавьте в словарь ключ
"weapon"со значением"меч"и ещё раз выведитеplayer. - 3
В конце с помощью
len()выведите, сколько пар теперь вplayer. Последняя строка должна быть4.