or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
Тема 13
Словники та множини
© Яценко Р.М., 2019-2023
Навчальний центр комп'ютерних технологій "Кит"
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →1. Призначення та створення словників
Визначення словника
Структура даних, що дозволяє ідентифікувати її елементи не за числовим індексом, а за довільним, називається словником або асоціативним масивом
Відповідна структура даних у мові Python називається
dict
Приклад 1. Країни та столиці
Елементи словника
Отже, кожен елемент словника складається з двох об'єктів:
Ключ ідентифікує елемент словника, значення є даними, які відповідають цьому ключу. Ключі – унікальні, двох однакових ключів у словнику бути не може
Приклади
Вікіпедія. Ключем словника є слово-заголовок статті, а значенням — сама стаття. Щоб отримати доступ до статті, необхідно вказати слово-ключ
Контакти в телефоні. У цьому словнику ключем є ім'я, а значення номер телефону
Динамічність словника
Особливістю словника є його динамічність – до нього можна додавати нові елементи з довільними ключами і видаляти вже існуючі елементи
При цьому розмір пам'яті, що використовується, пропорційний розміру словника. Доступ до елементів словника виконується хоч і повільніше, ніж до звичайних списків, але загалом досить швидко
Коли потрібно використовувати
Підрахунок кількості якихось об'єктів. І тут потрібно завести словник, у якому ключами є об'єкти, а значеннями – їх кількість
Зберігання будь-яких даних, пов'язаних з об'єктом. Ключі – об'єкти, значення – пов'язані з ними дані
Встановлення відповідності між об'єктами (наприклад, “батько-нащадок”). Ключ - об'єкт, значення - відповідний йому об'єкт
Якщо потрібен звичайний масив, але масимальне значення індексу елемента дуже велике, і при цьому будуть використовуватися не всі можливі індекси (так званий "розріджений масив"), то можна використовувати словник (асоціативний масив) для економії пам'яті
Приклад 2. Створення словника
Порожній словник можна створити за допомогою функції
dict()
або порожньої пари фігурних дужок{}
2. Робота з елементами словника
Отримання значення елемента
Основна операція отримання значення елемента по ключу записується так само, як і для списків:
A[key]
Якщо елемента із заданим ключем немає у словнику, виникає помилка
KeyError
Метод get
A.get(key)
Якщо елемента з ключем
key
немає у словнику, то повертається значенняNone
У формі запису з двома аргументами
A.get(key, value)
метод повертає значенняvalue
, якщо елемент із ключемkey
відсутній у словникуПеревірка приналежності
Перевірити приналежність елемента словнику можна операціями
in
таnot in
Додавання та видалення елемента
Для додавання нового елемента до словника потрібно просто надати йому якесь значення:
A[key] = value
Для видалення елемента зі словника можна використати операцію
del A[key]
(виникне помилка
KeyError
, якщо такого ключа у словнику немає)Приклад 3. Безпечний спосіб видалення
Попередньо перевіряємо наявність елемента за допомогою
in
Приклад 4. Перебір елементів словника
Можна легко організувати перебір ключів всіх елементів у словнику
Методи представлення елементів словника
A.keys()
повертає список ключів усіх елементівA.values()
повертає список усіх значень елементівA.items()
повертає список усіх пар (кортежів) із ключів та значеньПриклад 5. Перебір елементів словника-2
За допомогою методу словника
items
3. Множини
Множини в Python
Множини у мові Python (
set
) можуть складатися тільки з різних елементів, порядок елементів у множині невизначенийВиконувати операції можна як над множинами, так і з окремими елементами
Порядок зберігання елементів
На відміну від списків, де елементи зберігаються у вигляді послідовного списку, у множинах порядок зберігання елементів невизначений (більше того, елементи множини зберігаються не поспіль, як у списку, а за допомогою хитрих алгоритмів)
Це дозволяє виконувати операції типу "перевірити приналежність елемента множині" швидше, ніж просто перебираючи всі елементи множини
Елементи множин
Створення множин
Приклад 6
Приклад 7
Кожен елемент може входити до множини лише один раз, порядок надання елементів неважливий
Робота з елементами множини
Дізнатися кількість елементів у множинах можна за допомогою функції len
Перебрати всі елементи множини (у невизначеному порядку!) можна за допомогою циклу for:
Перевірка приналежності
Перевірити, чи належить елемент множині можна за допомогою операції
in
, що повертає значенняTrue
абоFalse
Аналогічно є протилежна операція
not in
Додавання та видалення елементів
add
discard
таremove
. Якщо елемент, що видаляється, відсутній -discard
не робить нічого, аremove
генерує помилкуpop
видаляє один випадковий елемент та повертає його значенняОперації з множинами
A | B
A
іB
A & B
A
іB
A - B
A
іB
(елементи, що входять вA
, але не входять вB
)Операції порівняння
A == B
(A != B)
True
, якщо множиниA
таB
містять однакові елементиA <= B
True
, якщо всі елементи множиниA
входять доB
A < B
A <= B and A != B
Домашнє завдання
Набрати та запустити на виконання усі приклади програм з лекції
© Яценко Р.М., НЦКТ "Кит", 2019-2023