На этом шаге мы рассмотрим основные операции над словарями.
Обращение к элементам словаря осуществляется с помощью квадратных скобок, в которых указывается ключ. В качестве ключа можно указать неизменяемый объект - например: число, строку или кортеж.
Выведем все элементы словаря:
>>> d = {1: "int", "a": "str", (1, 2): "tuple"}
>>> d[1], d["a"], d[(1, 2)]
('int', 'str', 'tuple')
Если элемент, соответствующий указанному ключу, отсутствует в словаре, то возбуждается исключение KeyError:
>>> d = {"a": 1, "b": 2}
>>> d["c"] # Обращение к несуществующему элементу
Traceback (most recent call last):
File "<pyshell#49>", line 1, in <module>
d["c"] # Обращение к несуществующему элементу
KeyError: 'c'
Проверить существование ключа можно с помощью оператора in. Если ключ найден, то возвращается значение True, в противном случае - False. Примеры:
>>> d = {"a": 1, "b": 2}
>>> "a" in d # Ключ существует
True
>>> "с" in d # Ключ не существует
False
Проверить, отсутствует ли какой-либо ключ в словаре, позволит оператор not in. Если ключ отсутствует, возвращается True, иначе - False. Примеры:
>>> d = {"a": 1, "b": 2}
>>> "с" not in d # Ключ не существует
True
>>> "a" not in d # Ключ существует
False
Метод get (<Ключ>[, <Значение по умолчанию>]) позволяет избежать возбуждения исключения KeyError при отсутствии в словаре указанного ключа. Если ключ присутствует в словаре, то метод возвращает значение, соответствующее этому ключу. Если ключ отсутствует, то возвращается None или значение, указанное во втором параметре. Пример:
>>> d = {"a": 1, "b": 2}
>>> d.get("a") , d.get("c"), d.get("c", 800)
(1, None, 800)
Кроме того, можно воспользоваться методом setdefault (<Ключ>[, <Значение по умолчанию>]). Если ключ присутствует в словаре, то метод возвращает значение, соответствующее этому ключу. Если ключ отсутствует, то в словаре создается новый элемент со значением, указанным во втором параметре. Если второй параметр не указан, значением нового элемента будет None.
Пример:
>>> d = {"a": 1, "b": 2}
>>> d.setdefault("a"), d.setdefault("c"), d.setdefault("d", 0)
(1, None, 0)
>>> d
{'d': 0, 'a': 1, 'b': 2, 'c': None}
Так как словари относятся к изменяемым типам данных, мы можем изменить элемент по ключу. Если элемент с указанным ключом отсутствует в словаре, то он будет добавлен в словарь:
>>> d = {"a": 1, "b": 2}
>>> d["a"] = 800 # Изменение элемента по ключу
>>> d["c"] = "string" # Будет добавлен новый элемент
>>> d
{'a': 800, 'b': 2, 'c': 'string'}
Получить количество ключей в словаре позволяет функция len ():
>>> d = {"a": 1, "b": 2}
>>> len(d) # Получаем количество ключей в словаре
2
Удалить элемент из словаря можно с помощью оператора del:
>>> d = {"a": 1, "b": 2}
>>> del d["b"]; d # Удаляем элемент с ключом "b" и выводим словарь
{'а': 1}
На следующем шаге мы рассмотрим перебор элементов словаря.