Python. Методы работы со словарями

Методы работы со словарями


Содержание


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]

 


Связанные темы