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]

 


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