Методы словарей

dict.clear()
Удаляет все элементы из словаря. Примеры.
>>> a = dict(zip('ABCD', range(4)))
>>> a
{'A': 0, 'B': 1, 'C': 2, 'D': 3}
>>>
>>> a.clear()
>>> a
{}

Если два словаря ссылаются на очистку одних и тех же данных, то очистка одного приведет к очистке другого:

>>> a = dict(zip('ABCD', range(4)))
>>> b = a
>>> b
{'A': 0, 'B': 1, 'C': 2, 'D': 3}
>>>
>>> a.clear()
>>> b
{}
dict.copy()
Возвращает поверхностную копию словаря. Примеры.
>>> a = dict(zip('ABCD', range(4)))
>>>
>>> b = a.copy()
>>>
>>> a.clear()
>>> b
{'A': 0, 'B': 1, 'C': 2, 'D': 3}
dict.fromkeys(sec, val)
Создает словарь с ключами из последовательности sec и значениями None или val, если val указано. Примеры.
>>> {}.fromkeys('ABCD')
{'A': None, 'B': None, 'C': None, 'D': None}
>>>
>>> {}.fromkeys('ABCD', 7)
{'A': 7, 'B': 7, 'C': 7, 'D': 7}

Вне зависимости за каким словарем следует данный метод, все равно будет возвращен новый словарь:

>>> a = dict(zip('ABCD', range(4)))
>>> a
{'A': 0, 'B': 1, 'C': 2, 'D': 3}
>>>
>>> a.fromkeys('XYZ', 0)
{'X': 0, 'Y': 0, 'Z': 0}

Но в качестве параметра sec можно указывать не только последовательности но и имеющиеся словари:

>>> {}.fromkeys(a, 0)
{'A': 0, 'B': 0, 'C': 0, 'D': 0}
dict.get(key, val)
Возвращает значение ключа key. В случае если указанного ключа нет в словаре, то будет возвращено None или val если val указано. Примеры.
>>> a = dict(zip('ABCD', range(4)))
>>> a
{'A': 0, 'B': 1, 'C': 2, 'D': 3}
>>>
>>> a.get('B')
1
>>>
>>> a.get('Z')    # вернет None - т.е. ничего не вернет
>>>
>>> a.get('Z', 777)
777
dict.items()
Возвращает представление всех элементов словаря (все пары "ключ-значение"). Примеры.
>>> a.items()
dict_items([('A', 0), ('B', 1), ('C', 2), ('D', 3)])

Возвращаемое представление доступно только для итерирования:

>>> [i for i in a.items()]
[('A', 0), ('B', 1), ('C', 2), ('D', 3)]

Однако для представлений элементов доступны некоторые операции множеств (см. подробнее в Обход словарей в цикле).

dict.keys()
Возвращает представление ключей всех элементов словаря. Примеры.
>>> a = dict(zip('ABCD', range(4)))
>>> a
{'A': 0, 'B': 1, 'C': 2, 'D': 3}
>>>
>>> a.keys()
dict_keys(['A', 'B', 'C', 'D'])

Возвращаемое представление доступно только для итерирования:

>>> [i for i in a.keys()]
['A', 'B', 'C', 'D']

Однако для представлений ключей доступны некоторые операции множеств (см. подробнее в Обход словарей в цикле).

dict.values()
Возвращает представление значений всех элементов словаря. Примеры.
>>> a = dict(zip('ABCD', range(4)))
>>> a
{'A': 0, 'B': 1, 'C': 2, 'D': 3}
>>>
>>> a.values()
dict_values([0, 1, 2, 3])

Возвращаемое представление доступно только для итерирования:

>>> [i for i in a.values()]
[0, 1, 2, 3]
dict.pop(key, val)
Удаляет и возвращает элемент с указанным ключом key. Если элемент с указанным ключом отсутствует, то возбуждается исключение KeyError или возвращается значение val если val указано. Примеры.
>>> a = dict(zip('ABCD', range(4)))
>>> a
{'A': 0, 'B': 1, 'C': 2, 'D': 3}
>>>
>>> a.pop('A')
0
>>> a
{'B': 1, 'C': 2, 'D': 3}
>>>
>>> a.pop('Z')
KeyError: 'Z'
>>>
>>> a.pop('Z', 777)
777
dict.popitem()
Удаляет произвольный элемент из словаря и возвращает его в виде кортежа (key, value). Если словарь пуст, то вызывается исключение KeyError. Примеры.
>>> a = dict(zip('ABC', range(3)))
>>> a
{'A': 0, 'B': 1, 'C': 2}
>>>
>>> a.popitem()
('C', 2)
>>> a
{'A': 0, 'B': 1}
>>>
>>> a.popitem()
('B', 1)
>>> a.popitem()
('A', 0)
>>>
>>> a     # сейчас словарь пуст
{}
>>>
>>> a.popitem()     # а для пустого словаря вызовется исключение
KeyError: 'popitem(): dictionary is empty'
dict.setdefault(key, val)
Возвращает значение с указанным ключом. Если в словаре нет такого элемента, то он будет создан со значением None или val если значение val указано, после чего значение нового элемента также возвращается. Примеры.
>>> a = dict(zip('ABC', range(3)))
>>> a
{'A': 0, 'B': 1, 'C': 2}
>>>
>>> a.setdefault('A')
0
>>>
>>> a.setdefault('A', 7777)
0
>>> a
{'A': 0, 'B': 1, 'C': 2}

Новые элементы добавляются только если их нет в словаре:

>>> a.setdefault('X')
>>> a
{'A': 0, 'B': 1, 'C': 2, 'X': None}
>>>
>>> a.setdefault('Y', 7777)
7777
>>> a
{'A': 0, 'B': 1, 'C': 2, 'X': None, 'Y': 7777}
>>>
>>> a.setdefault('Z', 8888)
8888
>>> a
{'A': 0, 'B': 1, 'C': 2, 'X': None, 'Y': 7777, 'Z': 8888}
dict.update(a)
Добавляет новые элементы из словаря a и обновляет значения имеющихся. Примеры.

Добавляет новые элементы:

>>> a = dict(zip('ABC', range(3)))
>>> a
{'A': 0, 'B': 1, 'C': 2}
>>>
>>> b = dict(zip('XYZ', range(3)))
>>> b
{'X': 0, 'Y': 1, 'Z': 2}
>>>
>>> a.update(b)     # теперь в 'a' появятся элементы из 'b'
>>> a
{'A': 0, 'B': 1, 'C': 2, 'X': 0, 'Y': 1, 'Z': 2}

Для элементов с одинаковыми ключами обновляются значения:

>>> a = dict(zip('ABC', range(3)))
>>> a
{'A': 0, 'B': 1, 'C': 2}
>>> b = dict(zip('ABC', range(111, 334, 111)))
>>> b
{'A': 111, 'B': 222, 'C': 333}
>>>
>>> a.update(b)
>>> a
{'A': 111, 'B': 222, 'C': 333}

В случае наличия новых элементов и одинаковых ключей происходит добавление элементов и обновление значений:

>>> a = dict(zip('ABC', range(3)))
>>> a
{'A': 0, 'B': 1, 'C': 2}
>>>
>>> b = dict(zip('ABCXYZ', range(111, 667, 111)))
>>> b
{'A': 111, 'B': 222, 'C': 333, 'X': 444, 'Y': 555, 'Z': 666}
>>>
>>> a.update(b)
>>> a
{'A': 111, 'B': 222, 'C': 333, 'X': 444, 'Y': 555, 'Z': 666}