|
|
Програмування мовою Python: основи та практика Електронний посібник |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ТЕМА 7.3. СЛОВНИКИ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Щоб отримати доступ до певного
елементу списку, потрібно зазначити його номер. Однак здебільшого
використання числових індексів для ідентифікації даних є не зовсім зручним. У певному
сенсі словники можна розглядати як дещо
середнє між списками і множинами.
Вміст словника організовано у формі пар «ключ: значення».
Унікальність ключів гарантує, що в словнику
не може бути двох однакових ключів. Ключі мають бути незмінними типами даних,
як-от цілі числа, дійсні числа, рядки або кортежі. Часто словник також
називають асоціативним масивом. У словнику дані
представлені парами «ключ: значення», відокремленими комами та обведеними фігурними
дужками. Наприклад: {‘A1’:2, ‘A2’:3}.
Словники можна змінювати, додавати нові елементи з унікальними ключами та
видаляти існуючі. Розмір використовуваної пам’яті словника пропорційний його
розміру. Порівняно зі звичайними списками доступ до елементів словника
виконується повільніше, але загалом є досить швидким.
>>>
a={} >>>
b=dict()
>>> a={‘A1’:2, ‘A2’:3} >>> b=dict(id1=4,
id2=8) >>> print(b) {‘id1’: 4,
‘id2’: 8}
>>>
a={1: ‘A1’, 2: ‘A2’} >>>
a={(1,2,3):2, ‘A2’:3}
>>> d={x: x**2 for x in (2, 4, 6)} >>>
print(d) {2: 4, 4: 16,
6: 36} У словниках доступ до
їхніх елементів відбувається за допомогою ключів. Елементами словника є пари ключ-значення,
тому саме доступу до окремого елементу словника, як в
списку, немає. Для отримання значення конкретного елементу словника
використовується його ключ. Щоб звернутися до значення певного
елементу словника, потрібно вказати ім’я словника та в квадратних
дужках вказати його ключ (ім’я_словника[ключ]).
За спроби доступу за неіснуючим у словнику ключем виникає виняток KeyError.
Можна перевірити приналежність деякого ключа до словника, використовуючи
оператор in
(ключ in ім’я_словника).
Також можна перевірити наявність певного значення в словнику, проте така
перевірка відбуватиметься за результатом методу values().
За необхідності можна організувати
перебір ключів усіх елементів словника.
Оскільки словники є змінюваними, їх можна модифікувати, зокрема змінювати значення їхніх елементів. Щоб змінити
значення конкретного елементу словника, потрібно вказати ім’я словника, в
квадратних дужках вказати його ключ та призначити нове значення (ім’я_словника[ключ]=нове_значення).
Щоб додати елемент до словника,
потрібно вказати ім’я змінної словника та в квадратних дужках новий ключ і виконати присвоєння нового значення (ім’я_словника[новий_ключ]=значення).
Для видалення елементу
зі словника можна скористатися командою del (del ім’я_словника[ключ]).
dict.fromkeys(iterable [, value]). Створює новий словник, ключами якого будуть елементи з iterable і однаковим для всіх значенням value.
dict.update([other]). Доповнює словник dict парами (ключ=значення) зі словника other, якщо ключ вже є в словнику, то його
значення оновлюється.
dict.copy(). Повертає копію словника dict.
dict.get(key[, default]). Повертає значення зі словника dict за ключем key. У випадку відсутності
елементу з ключем key повертається значення default.
dict.setdefault(key[, default]). Повертає значення зі словника dict за ключем key. У випадку відсутності елементу з ключем key повертається значення default, і до словника додається елемент з ключем key і значенням default.
dict.keys(). Повертає ключі елементів словника dict у формі об’єкта перегляду словника, що забезпечують динамічний перегляд записів словника.
dict.values(). Повертає значення елементів словника dict у формі об’єкта перегляду
словника, що забезпечують динамічний перегляд записів словника.
dict.items(). Повертає ключі та значення елементів словника dict у формі об’єкта перегляду словника, що забезпечують динамічний перегляд записів словника. Елементи
словника подаються у формі кортежів (ключ, значення).
dict.pop(key[, default]). Вилучає зі словника dict елемент з ключем key та повертає його значення як результат виконання функції. У випадку відсутності елементу з ключем key повертається значення default. Якщо default не вказаний, і елемента з ключем key немає, то виникає виняток KeyError.
dict.popitem(). Вилучає і повертає пару (ключ, значення) зі словника dict як результат виконання функції. Пари
повертаються в порядку
LIFO (last-in
first-out). Якщо словник порожній,
то виникає виняток KeyError.
dict.clear(). Очищує словник dict (вилучає всі елементи зі словника).
p1={‘x’:0, ‘y’:0} p2={‘x’:0, ‘y’:0} print(‘введіть координати 1-ї точки: ‘) p1[‘x’]=float(input(‘x:’)) p1[‘y’]=float(input(‘y:’)) print(‘введіть координати 2-ї точки: ‘) p2[‘x’]=float(input(‘x:’)) p2[‘y’]=float(input(‘y:’)) import math import math lenP=math.sqrt((p1[‘x’]-p2[‘x’])**2+(p1[‘y’]-
p2[‘y’])**2) print(‘відстань між точками ({}; {}) та ({}; {}) = {:.3}’.format(p1[‘x’],
p1[‘y’], p2[‘x’], p2[‘y’],lenP)) # Створюємо
словник symbs=dict([[ʺaʺ,ʺпершийʺ],[ʺbʺ,ʺдругийʺ]]) # Створюємо
ще один словник more_symbs=dict([[ʺcʺ,ʺтретійʺ],[ʺdʺ,ʺчетвертийʺ]]) # Додаємо
другий словник у перший symbs.update(more_symbs) # Вміст
словника print(ʺСловник:ʺ,symbs) # Довжина
словника print(ʺКількість
ключів у словнику:ʺ,len(symbs)) # Доступ до
елементу за ключем (ключ у словнику є) print(ʺЕлемент із ключем ‘с’:ʺ,symbs.get(ʺcʺ,ʺнемає
такого ключа!ʺ)) # Перевіряємо
наявність ключа в словнику print(ʺНаявність
елементу з ключем ‘с’:ʺ,ʺcʺ
in symbs) # Видаляємо
елемент зі словника del symbs[ʺcʺ] # Вміст
словника print(ʺСловник:ʺ,symbs) # Доступ до
елементу за ключем (ключа в словнику немає) print(ʺЕлемент з
ключем ‘с’:ʺ, symbs.get(ʺcʺ,ʺнемає
такого ключа!ʺ)) # Перевіряємо
наявність ключа в словнику print(ʺНаявність
елементу з ключем ‘с’:ʺ,ʺcʺ
in symbs) # Список
ключів словника print(ʺКлючі словника:ʺ,list(symbs.keys())) # Список значень елементів словника print(ʺЗначення елементів словника:ʺ,list(symbs.values())) # Вміст
словника print(ʺВміст словника:ʺ,list(symbs.items())) # Видалення елементу зі словника print(ʺВидаляється
елемент зі значенням:ʺ,symbs.pop(ʺbʺ)) # Вміст словника print(ʺСловник:ʺ,symbs) # Очистка
словника symbs.clear() # Вміст
словника print(ʺСловник:ʺ,symbs) Результат
виконання програми Словник:
{‘b’: ‘другий’, ‘c’: ‘третій’, ‘a’: ‘перший’, ‘d’:
‘четвертий’} Кількість
ключів у словнику: 4 Елемент із
ключем ‘с’: третій Наявність елементу з ключем ‘с’: True Словник:
{‘b’: ‘другий’, ‘a’: ‘перший’, ‘d’: ‘четвертий’} Елемент з
ключем ‘с’: немає такого ключа! Наявність елементу з ключем ‘с’: False Ключі
словника: [‘b’, ‘a’, ‘d’] Значення
елементів словника: [‘другий’, ‘перший’, ‘четвертий’] Вміст
словника: [(‘b’, ‘другий’), (‘a’, ‘перший’), (‘d’, ‘четвертий’)] Видаляється
елемент зі значенням: другий Словник: {‘a’: ‘перший’, ‘d’: ‘четвертий’} Словник: {} Завдання для самоперевірки
Ø Словник є невпорядкованим
набором елементів. Доступ до елементів словника виконується за ключем. Ø Для створення словника використовують
функцію dict(), аргументом якій передають список з елементами-списками. Кожен такий
внутрішній список складається з двох елементів: значення
ключа і значення елементу.
Можна також створити словник, узявши у фігурні дужки, розділені двокрапкою,
ключі й значення відповідних елементів. Ø Доступ до
елементів словника виконується за ключем: після імені словника у квадратних
дужках указують ключ елементу. Ø Метод keys() дає змогу отримати доступ до ключів
словника. Для доступу до значень словника використовують метод values(). Метод items() повертає кортежі з ключами і значеннями елементів словника. Ø Для видалення
елементу зі словника застосовують метод pop(). Для додавання декількох елементів використовують метод update().
Новий елемент у словник можна додати, присвоївши значення
елементу з новим ключем: після імені словника у квадратних дужках указується
ключ елементу, який додають, і після оператора присвоювання (знака рівності)
‒ значення
елементу. Ø Поверхневу
копію словника створюють за допомогою
методу copy(), а повну копію можна створити
за допомогою функції deepcopy() з модуля copy. Ø Генератор
словника беруть у фігурні дужки й водночас створюють два параметри: ключ і
відповідний йому елемент словника.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||