На этом шаге мы рассмотрим основные операции над словарями.
Обращение к элементам словаря осуществляется с помощью квадратных скобок, в которых указывается ключ. В качестве ключа можно указать неизменяемый объект - например: число, строку или кортеж.
Выведем все элементы словаря:
>>> 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}
На следующем шаге мы рассмотрим перебор элементов словаря.