MyTetra Share
Делитесь знаниями!
Перебор словаря
Время создания: 31.08.2017 21:01
Текстовые метки: knowledge
Раздел: Python - Types data - Словари
Запись: xintrea/mytetra_db_mcold/master/base/1504202479dbmmn7omh3/text.html на raw.githubusercontent.com

Работа с элементами словаря

Основная операция: получение значения элемента по ключу, записывается так же, как и для списков: A[key]. Если элемента с заданным ключом нет в словаре, то возникает исключение KeyError.

Другой способ определения значения по ключу — метод getA.get(key). Если элемента с ключом get нет в словаре, то возвращается значение None. В форме записи с двумя аргументами A.get(key, val) метод возвращает значение val, если элемент с ключом keyотсутствует в словаре.

Проверить принадлежность элемента словарю можно операциями in и not in, как и для множеств.

Для добавления нового элемента в словарь нужно просто присвоить ему какое-то значение: A[key] = value.

Для удаления элемента из словаря можно использовать операцию del A[key] (операция возбуждает исключение KeyError, если такого ключа в словаре нет. Вот два безопасных способа удаления элемента из словаря.

запустить выполнить пошагово 

1
2
3
4
5
6
7
8
9
10
11
12
= {'ab' : 'ba''aa' : 'aa''bb' : 'bb''ba' : 'ab'}
key = 'ac'
if key in A:
    del A[key]
try:
    del A[key]
except KeyError:
    print('There is no element with key "' + key + '" in dict')
print(A)

В первом случае мы предварительно проверяем наличие элемента, а во втором - перехватываем и обрабатываем исключение.

Еще один способ удалить элемент из словаря: использование метода popA.pop(key). Этот метод возвращает значение удаляемого элемента, если элемент с данным ключом отсутствует в словаре, то возбуждается исключение. Если методу pop передать второй параметр, то если элемент в словаре отсутствует, то метод pop возвратит значение этого параметра. Это позволяет проще всего организовать безопасное удаление элемента из словаря: A.pop(key, None).

Перебор элементов словаря

Можно легко организовать перебор ключей всех элементов в словаре:

запустить выполнить пошагово 

1
2
3
4
= dict(zip('abcdef'list(range(6))))
for key in A:
    print(key, A[key])

Следующие методы возвращают представления элементов словаря. Представления во многом похожи на множества, но они изменяются, если менять значения элементов словаря. Метод keys возвращает представление ключей всех элементов, метод values возвращает представление всех значений, а метод items возвращает представление всех пар (кортежей) из ключей и значений.

Соответственно, быстро проверить, есть ли значение val среди всех значений элементов словаря A можно так: val in A.values(), а организовать цикл так, чтобы в переменной key был ключ элемента, а в переменной val, было его значение можно так:

запустить выполнить пошагово 

1
2
3
4
= dict(zip('abcdef'list(range(6))))
for key, val in A.items():
    print(key, val)



 
MyTetra Share v.0.59
Яндекс индекс цитирования