Шаг 91.
Основы языка Python.
Словари. Операции над словарями

    На этом шаге мы рассмотрим основные операции над словарями.

    Обращение к элементам словаря осуществляется с помощью квадратных скобок, в которых указывается ключ. В качестве ключа можно указать неизменяемый объект - например: число, строку или кортеж.

    Выведем все элементы словаря:

>>> 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}

    На следующем шаге мы рассмотрим перебор элементов словаря.




Предыдущий шаг Содержание Следующий шаг