Робота зі словниками. Вбудовані функції list(), zip(). Обхід словника. Генератори словників. Сортування. Поєднання словників з множинами
Зміст
- 1. Вбудована функція list(). Приклад застосування зі словниками
- 2. Вбудована функція zip(). Приклад створення словника
- 3. Обхід словника з допомогою циклу for. Приклад
- 4. Використання словників для розріджених структур даних. Приклад
- 5. Створення словників з допомогою генераторів словників. Приклади
- 6. Сортування словника. Приклад
- 7. Приклад використання списків ключів словника в операціях над множинами
- Зв’язані теми
Пошук на інших ресурсах:
1. Вбудована функція list(). Приклад застосування зі словниками
Використання вбудованої функції list() дозволяє отримувати списки значень, ключів та пар (ключ:значення). Щоб сформувати відповідний список з допомогою list() потрібно використати один з наступних методів:
- метод values() дозволяє отримати список значень словника;
- метод keys() дозволяє отримати список ключів словника;
- метод items() дозволяє отримати список пар (ключ:значення).
Більш детально про використання методів values(), keys(), items() описується тут.
Приклад.
# Робота зі словниками # Вбудований метод list() # Вихідний словник Figures = { 1:'Rectangle', 2:'Triangle', 3:'Circle' } # 1. Отримати список значень словника values = list(Figures.values()) print(values) # ['Rectangle', 'Triangle', 'Circle'] # 2. Отримати список ключів словника keys = list(Figures.keys()) # keys = [1, 2, 3, 4] print(keys) # 3. Отримати список пар (ключ:значення) pairs = list(Figures.items()) print(pairs) # [(1,'Rectangle'),(2,'Triangle'),(3,'Circle')]
⇑
2. Вбудована функція zip(). Приклад створення словника
Функція zip() дозволяє створити словник шляхом об’єднання списків ключів та значень.
Приклад.
# Словники. Функція zip() # Створення словника з списків ключів та значень Numbers = dict(zip([1, 2, 3], ['One', 'Two', 'Three'])) print(Numbers) # {1: 'One', 2: 'Two', 3: 'Three'}
⇑
3. Обхід словника з допомогою циклу for. Приклад
У прикладі демонструється обхід словника з допомогою циклу for і виведення усіх пар (ключ:значення).
Приклад.
# Робота зі словниками # Обхід словника з допомогою циклу for # Вихідний словник Months = { 1:'Jan', 2:'Feb', 3:'Mar', 4:'Apr', 5:'May', 6:'Jun', 7:'Jul', 8:'Aug', 9:'Sep', 10:'Oct', 11:'Nov', 12:'Dec' } # Цикл for обходу словника # у циклі mn - ключ, Months[mn] - значення for mn in Months: print(mn, ': ', Months[mn])
Результат виконання програми
1 : Jan 2 : Feb 3 : Mar 4 : Apr 5 : May 6 : Jun 7 : Jul 8 : Aug 9 : Sep 10 : Oct 11 : Nov 12 : Dec
⇑
4. Використання словників для розріджених структур даних. Приклад
Словники можуть ефективно використовуватись для представлення структур даних, інформація в яких є розрідженою. Прикладами таких даних можуть бути двовимірні масиви, в яких тільки декілька елементів мають визначені значення.
Приклад. У прикладі продемонстровано представлення розрідженої матриці чисел у вигляді словника. Нехай задана матриця
яку потрібно представити у вигляді словника. Розв’язок задачі наступний:
# Словники. Представлення розріджених структур даних # Матриця M M = {} # створити пустий словник M[(0, 1)] = 1 # ключ=(0,1): значення=1 M[(1, 2)] = 3 # пара (ключ:значення) = ((1,2):3) M[(2, 0)] = 2 # пара (ключ:значення) = ((2,0):2) print(M) # {(0, 1): 1, (1, 2): 3, (2, 0): 2}
У вищенаведеному прикладі ключами словника є кортежі, що містять координати непустих елементів. Так значення ключа (2, 0) означає рядок 2, стовпець 0.
⇑
5. Створення словників з допомогою генераторів словників. Приклади
Словники можна створювати з використанням генераторів словників. У цьому випадку використовується один з нижченаведених способів:
- згенерувати словник на основі заданого виразу;
- згенерувати словник на основі ітерованого об’єкту;
- ініціалізувати словник зі списків ключів;
- згенерувати словник з використанням функції zip().
У прикладі демонструється використання усіх способів.
Приклад.
# Словники. Генератори словників # 1. Згенерувати словник на основі заданого виразу # Генеруються пари (ключ: значення) = (i: 5*i) A = { i: i*5 for i in [10,20,30,40] } print(A) # {10: 50, 20: 100, 30: 150, 40: 200} # 2. Згенерувати словник на основі ітерованого об'єкту (рядка) s = 'Hello' B = { sym: sym*3 for sym in s } # пара (sym:sym*3) print(B) # {'H': 'HHH', 'e': 'eee', 'l': 'lll', 'o': 'ooo'} numbers = [ 15, 25, 30 ] C = { num: str(num) for num in numbers } print(C) # {15: '15', 25: '25', 30: '30'} # 3. Ініціалізація словника зі списків ключів # Заповнити список ключів значенням, введеним з клавіатури value = int(input('Input value: ')) listKeys = [ 1, 2, 3, 4 ] D = { lk:value for lk in listKeys } print(D) # Заповнити список ключів значенням None value = None listKeys = [ 'a', 'b', 'c' ] E = { lk:value for lk in listKeys } print(E) # {'a': None, 'b': None, 'c': None} # 4. Згенерувати словник з використанням функції zip() WMonths = [ 'Dec', 'Jan', 'Feb'] NumMonths = [ 12, 1, 2 ] F = { nm:wm for (nm,wm) in zip(NumMonths,WMonths) } print(F) # {12: 'Dec', 1: 'Jan', 2: 'Feb'}
⇑
6. Сортування словника. Приклад
Як відомо, ключі в словнику зберігаються у довільному порядку. Якщо виникає необхідність відсортувати словник за ключами то для цього можна використати метод sort(), який використовується для списків. Для цього попередньо потрібно перетворити представлення ключів у список.
Приклад.
# Словники. Сортування за ключами # Вихідний словник A = { 'f':10, 'a':2, 'c':17 } # Сортування за ключами # 1. Отримати представлення ключів ak = A.keys() # ak = dict_keys(['f', 'a', 'c']) # 2. Конвертувати представлення ak в список list_ak = list(ak) # list_ak = ['f', 'a', 'c'] # 3. Відсортувати список ключів - функція sort() list_ak.sort() # ['a', 'c', 'f'] # 4. Вивести перелік (ключ:значення) # у посортованому порядку за ключами, # сформувати новий словник B = {} for k in list_ak: print('(', k, ': ', A[k], ')') B[k] = A[k] print(B) # {'a': 2, 'c': 17, 'f': 10}
⇑
7. Приклад використання списків ключів словника в операціях над множинами
На основі ключів словника можна утворювати списки. Ці списки ключів можуть бути використані в операціях над множинами, які утворюють нову множину. Іншими словами, можна змішувати різні об’єкти представлень (множини, словники) між собою з допомогою відповідних операцій.
Для того, щоб ключі можна було використовувати в операціях над множинами, потрібно попередньо конвертувати їх у списки з допомогою методу keys(). Більш детально про застосування методу keys() описується тут.
Приклад. У прикладі продемонстровано взаємодію словників та множин з допомогою операцій над множинами |, &, ^.
# Словники. Поєднання словників і множин # Заданий словник A = { 1:'One', 2:'Two', 3:'Three', 4:'Four', 5:'Five' } # Поєднання відображення ключів та множин, # утворюється нова множина # 1. Отримати відображення ключів keys = A.keys() # keys = dict_keys([1, 2, 3, 4, 5]) # 2. Сформувати нову множину ключів яка містить число 2 B = keys & {2} # B = {2} - нова множина # 3. Сформувати нову множину ключів, яка містить числа 3, 5 C = keys ^ {3, 5} # {1, 2, 4} # 4. Додати до множини ключів числа 8, 11 D = keys | { 8, 11 } # D = {1, 2, 3, 4, 5, 8, 11}
⇑
Зв’язані теми
- Словники. Основні поняття. Характеристики. Створення словників. Доступ до значень у словнику
- Вбудовані функції та операції обробки словників
- Методи роботи зі словниками
⇑