Объяснение к уроку
После этого урока ты сможешь:
Словарь сопоставляет ключи со значениями. Он удобен для именованных настроек и записей, где settings["region"] понятнее, чем запоминание числовой позиции. Литерал использует записи вида {key: value}; пустой словарь обозначается как {}. Ключи должны быть хешируемыми (часто используются строки), и каждый ключ уникален: повторное присваивание тому же ключу заменяет его значение.
Читай известное значение с помощью record[key] и используй record[key] = new_value, чтобы добавить или обновить его. Попытка прочитать отсутствующий ключ в квадратных скобках вызывает KeyError.
Проверяй наличие ключа с помощью key in record перед чтением необязательного поля. Это проверяет именно существование ключа, а не истинность его значения: сохраненные 0, False, "" или None могут быть вполне корректными данными. Используй del record[key] для удаления существующего ключа; проверяй наличие заранее, если ключ может отсутствовать.
Квадратные скобки находят значение, соответствующее ключу.
account = {"team": "payments", "retries": 3}
print(account["team"])
print(account["retries"])Вывод:
payments
3Присваивание отсутствующему ключу добавляет его; присваивание существующему ключу меняет его значение.
config = {"region": "us", "retries": 2}
config["region"] = "eu"
config["enabled"] = True
print(config["region"])
print(config["enabled"])Вывод:
eu
TrueПроверка принадлежности проверяет наличие ключа, а не сохраненное значение.
profile = {"user": "Maya", "attempts": 0}
print("attempts" in profile)
print("active" in profile)Вывод:
True
FalseУдаление полностью убирает запись из словаря.
settings = {"debug": False, "port": 8000}
del settings["debug"]
print(len(settings))
print("debug" in settings)Вывод:
1
False| Потребность | Python |
|---|---|
| Создать отображение | {"region": "eu"} |
| Прочитать известный ключ | config["region"] |
| Добавить или обновить | config["enabled"] = True |
| Проверить наличие ключа | "enabled" in config |
| Удалить существующую запись | del config["enabled"] |
| Посчитать записи | len(config) |
record["missing"] вызывает KeyError, если ключ не существует.key in record проверяет ключи, а не значения.0 — это по-прежнему значение существующего ключа..get() и его поведение по умолчанию рассматриваются в следующем уроке; здесь используй проверку наличия ключа.