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 = { 'A':1, 'B':2, 'C':3 }

# Очистити словник D
D.clear() # D = { }

 

3. Метод copy(). Повернути копію словника (shallow copy)

У випадку, якщо потрібно створити копію зі словника, використовується метод copy(). Згідно з документацією Python загальна форма використання методу наступна

B = A.copy()

де

  • A – вихідний словник, з якого потрібно зробити копію;
  • B – результуючий словник, який створюється. Цей словник є копією словника A.

Після виконання функції copy() зміни в одному словнику не будуть впливати на зміни в іншому словнику (словники розміщуються в різних ділянках пам’яті).

Приклад.

# Метод copy() - копія словника

# Заданий словник
D = { 'A':1, 'B':2, 'C':3 }

# Отримати копію D і записати її в D2
D2 = D.copy()

print("D = ", D)
print("D2 = ", D2)

# Змінити елемент в D2 за ключем 'B'
D2['B'] = 5 # D2 = {'A': 1, 'B': 5, 'C': 3}

# Додати нову пару ('E':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]

 


Зв’язані теми