Методы работы со словарями
Содержание
- 1. Встроенный метод iter(). Получить итератор на основе ключей словаря
- 2. Метод clear(). Удалить все элементы из словаря
- 3. Метод copy(). Вернуть копию словаря (shallow copy)
- 4. Метод dict.fromkeys(). Создать новый словарь из заданных ключей и значения
- 5. Метод get(). Получить значение по заданному ключу
- 6. Метод items(). Вернуть представление элементов словаря
- 7. Метод keys(). Получить новое представление ключей словаря
- 8. Метод pop(). Удаление элемента из словаря с возвратом значения
- 9. Метод popitem(). Вытянуть произвольную пару из словаря
- 10. Метод setdefault(). Установить элемент по умолчанию
- 11. Метод update(). Обновление словаря
- 12. Метод values(). Получить список значений
- Связанные темы
Поиск на других ресурсах:
1. Встроенный метод iter(). Получить итератор на основе ключей словаря
Встроенный метод iter() позволяет получить итератор по ключам словаря. Итераторы обеспечивают пошаговый обход списка ключей.
В соответствии с документацией Python общая форма использования метода следующая
iterObject = iter(D)
где
- D – исходный словарь;
- iterObject – итератор.
Пример.
# Метод iter() - получить итератор # Исходный словарь Colors = { 'Red':1, 'Green':2, 'Blue':3 } # Получить итератор в iterObj iterObj = iter(Colors) # По итератору получить список ключей lst = list(iterObj) # lst = ['Red', 'Green', 'Blue']
⇑
2. Метод clear(). Удалить все элементы из словаря
Метод clear() удаляет все элементы из словаря.
Пример.
# Метод clear() - удаление всех элементов из словаря # Исходный словарь D = { 'А':1, 'В':2, 'С':3 } # Очистить словарь D D.clear() # D = { }
⇑
3. Метод copy(). Вернуть копию словаря (shallow copy)
В случае, если нужно создать копию из словаря, используется метод copy(). В соответствии с документацией Python общая форма использования метода следующая
B = A.copy()
где
- A – исходный словарь, из которого нужно сделать копию;
- B – результирующий словарь, который создается. Этот словарь есть копией словаря A.
После выполнения функции copy() изменения в одном словаре не будут влиять на изменения в другом словаре (словари размещаются в разных участках памяти).
Пример.
# Метод copy() - копия словаря # Исходный словарь D = { 'А':1, 'В':2, 'С':3 } # Получить копию D и записать ее в D2 D2 = D.copy() print("D = ", D) print("D2 = ", D2) # Изменить элемент в D2 по ключу 'В' D2['В'] = 5 # D2 = {'А': 1, 'В': 5, 'С': 3} # Добавить новую пару ('Е':7) D['E'] = 7 # D = {'A': 1, 'B': 2, 'C': 3, 'E': 7} print("D = ", D) print("D2 = ", D2)
Результат выполнения программы
D = {'A': 1, 'B': 2, 'C': 3} D2 = {'A': 1, 'B': 2, 'C': 3} D = {'A': 1, 'B': 2, 'C': 3, 'E': 7} D2 = {'A': 1, 'B': 5, 'C': 3}
⇑
4. Метод dict.fromkeys(). Создать новый словарь из заданных ключей и значения
Метод fromkeys() класса dict позволяет создать новый словарь из последовательности заданных ключей и некоторого значения. В соответствии с документацией Python, общая форма использования метода следующая
D = dict.fromkeys(seq[, value])
где
- D – новосозданный словарь;
- seq – последовательность ключей, разделенных запятой и взятых в квадратные скобки;
- value – значение, которое устанавливается для всех ключей из последовательности seq. Если значение value не задано, то присваивается значение None.
Пример.
# Метод fromkeys() - создать новый словарь # 1. Не задано значение values - присваивается None A = dict.fromkeys([1, 2, 3]) print("A = ", A) # A = {1: None, 2: None, 3: None} # 2. Задано значение values B = dict.fromkeys([1, 2], 'Z') print("B = ", B) # B = {1: 'Z', 2: 'Z', 3: 'Z'} C = dict.fromkeys(['A', 'B'], [1, 2]) print("C = ", C) # C = {'A': [1, 2], 'B': [1, 2]}
Результат выполнения программы
A = {1: None, 2: None, 3: None} B = {1: 'Z', 2: 'Z'} C = {'A': [1, 2], 'B': [1, 2]}
⇑
5. Метод get(). Получить значение по заданному ключу
Метод get() предназначен для получения значения по заданному ключу если ключ есть в словаре. Если ключа нет в словаре, то возвращается значение, установленное по умолчанию.
Согласно документации Python общая форма использования метода следующая:
D.get(key[, default])
где
- D – словарь, из которого получается значение;
- key – ключ, который соответствует получаемому значению;
- default – значение по умолчанию, которое устанавливается если ключа нет в словаре.
Пример.
# Метод get() - получить значение по ключу # Исходный словарь A = { 1:'AA', 2:'BB', 3:'CC' } # 1. Вызов get() с 1 параметром (без параметра value) # 1.1. Ключ есть в словаре value = A.get(2) # value = 'BB' # 1.2. Ключа нету в словаре value = A.get(5) # value = None # 2. Вызов get() с 2 параметрами # Установить значение по умолчанию 'FF' value = A.get(5, 'FF') # value = FF
⇑
6. Метод items(). Вернуть представление элементов словаря
Метод items() возвращает новое представление элементов словаря в виде пар ключ:значение. Общая форма использования метода следующая:
viewObj = D.items()
где
- viewObj – результирующее представление;
- D – исходный словарь.
Пример.
# Метод items() - вернуть список пар ключей и значений # Исходный словарь A = { 'First':1, 'Second':2 } # Сформировать список пар ключей и значений LA = A.items() # LA = dict_items([('First', 1), ('Second', 2)]) # Другой способ, с помощью класса dict LA2 = dict.items(A)
⇑
7. Метод keys(). Получить новое представление ключей словаря
Метод keys() позволяет получить список ключей. Общая форма использования метода следующая:
B = A.keys()
где
- A – исходный словарь;
- B – представление ключей в виде списка.
Пример.
# Метод keys() - получить новое представление ключей словаря # Исходный словарь A = { 1:'One', 2:'Two', 3:'Three' } # Вызов метода keys() B = A.keys() # B = dict_keys([1, 2, 3])
⇑
8. Метод pop(). Удаление элемента из словаря с возвратом значения
Метод pop() используется для удаления элемента из словаря по заданному ключу. Общая форма использования метода следующая:
item = D.pop(key[, default])
где
- D – исходный словарь;
- item – значение элемента, который вытягивается из словаря;
- key – ключ. Если ключ key есть в словаре, то он удаляется из словаря и возвращается его значение в item. Если ключа в словаре нет, то возвращается значение default (по умолчанию). Если не указано значение по умолчанию и ключа нету в словаре, то генерируется исключение KeyError;
- default – значение по умолчанию, которое присваивается элементу item в случае, если ключ key в словаре не найден.
Пример.
# Метод pop() - вытянуть элемент из словаря # Исходный словарь A = { 1:'One', 2:'Two', 3:'Three' } # 1. Вызов метода pop() с 1 параметром # 1.1. Ключ есть в словаре item = A.pop(2) # A = {1:'One', 3:'Three'}, item = 'Two' # 1.2. Случай, когда ключа нету в словаре # item = A.pop(4) - генерируется исключение KeyError: 4 # 2. Вызов метода pop с 2 параметрами # Сформировать новый словарь A = { 'One':1, 'Two':2, 'Three':3 } item = A.pop('Two', 5) # A = {'One':1, 'Three':3}, item = 2 # Ключа нету в словаре item = A.pop('Four', 10) # item = 10
⇑
9. Метод popitem(). Вытянуть произвольную пару из словаря
Метод popitem() удаляет и возвращает случайную пару (ключ, значение) из словаря. Метод используется для деструктивного перебора словаря, который часто используется в алгоритмах множеств.
Общая форма использования метода следующая:
item = D.popitem()
где
- D – исходный словарь;
- item – случайная пара (ключ:значение), которая вытягивается из словаря.
Если при вызове popitem() словарь будет пустой, то будет сгенерирована ошибка KeyError.
Пример.
# Метод popitem() - вытянуть случайный элемент из словаря # Исходный словарь A = { 1:'One', 2:'Two', 3:'Three' } item = A.popitem() # item = (3, 'Three') # Словарь названий лабораторий и кабинетов B = { 233:'Lecture hall', 234:'Programming laboratory', 230:'Network laboratory' } item = dict.popitem(B) # item = (230, 'Network laboratory')
⇑
10. Метод setdefault(). Установить элемент по умолчанию
Метод setdefault() позволяет по заданному ключу установить элемент по умолчанию. Общая форма использования метода следующая
item = D.setdefault(key[, default])
где
- D – исходный словарь;
- key – ключ, для которого устанавливается значение по умолчанию default.
Для данного метода возможны разные случаи использования, которые приведены в примере.
Пример.
# Метод setdefault() - установить ключ по умолчанию # Исходный словарь Colors = { 'Red':1, 'Blue':2, 'Green':3, 'Orange':4 } # 1. Вызов метода с 1 параметром (без аргумента default) # 1.1. Ключ есть в словаре item = Colors.setdefault('Green') # Результат: # item = 3, # Colors = { 'Red':1, 'Blue':2, 'Green':3, 'Orange':4 } # 1.2. Ключа нет в словаре Colors = { 'Red':1, 'Blue':2, 'Green':3, 'Orange':4 } item = Colors.setdefault('Black') # Результат: # Colors = {'Red': 1, 'Blue': 2, 'Green': 3, 'Orange': 4, 'Black': None} # item = None # 2. Вызов метода с 2 параметрами # 2.1. Ключа нет в словаре, тогда он добавляется в словарь item = Colors.setdefault('Black', 5) # Результат: # item = 5, # Colors = {'Red':1, 'Blue':2, 'Green':3, 'Orange':4, 'Black':5} # 2.2. Значения нету в словаре - никаких изменений Colors = { 'Red':1, 'Blue':2, 'Green':3, 'Orange':4 } item = Colors.setdefault('Blue', 8) # Результат: # item = 2 # Colors = {'Red': 1, 'Blue': 2, 'Green': 3, 'Orange': 4}
⇑
11. Метод update(). Обновление словаря
Метод update используется для обновления словаря исходя из заданного списка пар (ключ:значение). Метод возвращает None.
Общая форма использования метода
D.update([other])
где
- D – исходный словарь;
- other – список типа (ключ, значение).
Пример.
# Метод update() - обновить словарь # Исходный словарь Colors = { 'Red':1, 'Blue':2 } # 1. Ключа нету в словаре Colors.update([('Black',7), ('White',9)]) # Colors = {'Red': 1, 'Blue': 2, 'Black': 7, 'White': 9} # 2. Ключ есть в словаре Colors = { 'Red':1, 'Blue':2 } Colors.update([('Red', 20),('Blue', 40)]) # Colors = {'Red': 20, 'Blue': 40}
⇑
12. Метод values(). Получить список значений
Метод values() позволяет получить список значений из заданного словаря. Согласно документации Python общая форма использования метода следующая:
vals = D.values()
где
- D – исходный словарь;
- vals – представление значений словаря D.
При поиске значений в словаре происходит операция сравнения. Все другие виды операций (>, >=, <, <=) вызовут исключение TypeError.
Пример.
# Метод values() - получить список значений # Исходный словарь Days = { 'Monday':1, 'Tuesday':2, 'Wednesday':3 } # получить перечень значений v = Days.values() # v = dict_values([1, 2, 3]) # конвертировать в список значений lst = list(v) # lst = [1, 2, 3]
⇑
Связанные темы
- Словари. Основные понятия. Характеристики. Создание словарей. Доступ к значениям в словаре
- Встроенные функции и операции обработки словарей
- Работа со словарями. Встроенные функции list(), zip(). Обход словаря. Генераторы словарей. Сортировка. Сочетание словарей с множествами
⇑