Словники

Словники в Python

Словник - це набір об'єктів будь-якого типу, який має ключ та значення. Записується за допомогою фігурних дужок, ключ та значення відділяються двокрапкою, наступні елементи розділяються комою.

{ключ1: значення1, ключ2: значення2, ... ключN: значенняN}

Наприклад:

m = {'a': 1, 'b': 2, 'c': 3}

Ключем можуть бути числа, рядки та кортежі.

Значення елементів словника можна змінювати.

Словники не підтримують такі операції як зріз, конкатенацію, тому що вони не є послідовностями.

Словник можна створити і таким способом:

dict(ключ1 = значення1, ключ2 = значення2, ... ключN = значенняN)

або dict({ключ1 = значення1, ключ2 = значення2, ... ключN = значенняN})

Для звернення до елемента ми вказуємо в квадратних дужках його ключ:

m = {'a': 1, 'b': 2, 'c': 3}

m['b']

Якщо елемент відсутній, то бачимо наступне повідомлення:

KeyError:

Наприклад:

m = {'a': 1, 'b': 2, 'c': 3}

print(m['k'])

Результат: KeyError: 'k'

Також наявність ключа в словнику можна перевірити за допомогою оператора in:

>>>m = {'a': 1, 'b': 2} >>>'b' in m True

Про наявність, або відсутність елемента в словнику вказує результат - істина True або хиба False.

Змінити значення елемента можна за допомогою ключа:

m = {'a': 1, 'b': 2, 'c': 3}

m['c'] = 5

print(m)

Результат: {'a': 1, 'b': 2, 'c': 5}

Можна додати новий елемент в словник у кінець списку:

m = {'a': 1, 'b': 2, 'c': 5}

m['k'] = 10

print(m)

Результат: {'a': 1, 'b': 2, 'c': 5, 'k': 10}

Функція len() дозволяє порахувати кількість ключів у словнику.

m = {'a': 1, 'b': 2, 'c': 5, 'k': 10}

a = len(m)

print(a)

Результат: 4

Видалити елемент із словника допоможе оператор del:

m = {'a': 1, 'b': 2, 'c': 5, 'k': 10}

del m['a']

print(m)

Результат: {'b': 2, 'c': 5, 'k': 10}

Основні методи роботи з словниками:

1. get(ключ) - повертає значення ключа, якщо він відсутній, то значення буде None.

t = {10: 'морозиво', 20: 'молоко', 30: 'печиво'} k = t.get(10) print(k)

Результат: морозиво

2. keys() - повертає всі ключі словника

t = {10: 'морозиво', 20: 'молоко', 30: 'печиво'} k = t.keys() print(k)

Результат: dict_keys([10, 20, 30])

3. update(словник) - додає нові елементи у словник.

t = {10: 'морозиво', 20: 'молоко', 30: 'печиво'}

t.update({40: 'цукерки'})

print(t)

Результат: {10: 'морозиво', 20: 'молоко', 30: 'печиво', 40: 'цукерки'}

4. values() - повертає об'єкт dict_valyes, який містить всі значення словника.

t = {10: 'морозиво', 20: 'молоко', 30: 'печиво'}

x = t.values() print(x)

Результат: dict_values(['морозиво', 'молоко', 'печиво'])

5. pop(ключі, значення по замовчуванню) - видаляє з словника елемент з вказаним ключем і показує його значення.

m = {'a': 1, 'b': 2, 'c': 5, 'k': 10}

x = m.pop('b')

print(m)

print(x)

Результат: {'a': 1, 'c': 5, 'k': 10}

2

Запитання для самоперевірки знань

1. Як записуються словники та їх елементи?

- словники записуються за допомогою фігурних дужок, а елементи - ключ: значення.

- словники записуються за допомогою квадратних дужок, а елементи - ключ: значення.

- словники записуються за допомогою квадратних дужок, а елементи - значення через кому.

2. Як можна перевірити наявність певного ключа в словнику:

- get(ключ)

- pop(ключ)

- event(ключ)

3. Як можна видалити елемент із словника?

- get(ключ)

- pop(ключ)

- event(ключ)

4. Для чого призначений метод get()?

- для видалення елементів

- для створення нового списку

- для перевірки наявного елемента

- для вставлення нового елемента

5. Для чого призначений метод keys()?

- дозволяє отримати всі ключі словника

- дозволяє отримати новий словник

- дозволяє отримати перший ключ в словнику

6. Для чого призначений метод update()?

- додає ключі у словник

- додає список у словник

- додає елементи у словник

- додає два словники

7. Для чого призначений метод values()?

- повертає усі дані словника

- повертає всі значення ключів

- повертає всі значення ключів


Завдання для самостійного виконання

З підручника Руденко, Інформатика 8 клас, 2021р., для поглибленого вивчення с. 207.


Виконання завдань:

Завдання 1. В інтерактивному режимі створіть словник елементами якого є: "Костенко": "зріст 173", "Варламов": "зріст 169", "Березко": "зріст 165", "Петренко": "зріст 170". Визначте дані про Петренка і кількість елементів у словнику.

# Завдання 1
>>>d = {"Костенко":"173", "Варламов":"169", "Берзко":"165", "Петренко":"170"}
>>>d["Петренко"]
'170'
>>>len(d)
4

Синім кольором показано, який буде результат.
Запис за допомогою коду:

d = {"Костенко":"173", "Варламов":"169", "Берзко":"165", "Петренко":"170"}
print(d["Петренко"])
print(len(d))

Завдання 2. Микола зібрав 3,4 кг грибів, Настя 4 кг, Тетяна 3,3 кг, Петро 5,2 кг. Розробіть код створення словника, елементами якого є наведені дані. Визначте, чи збирав гриби Іван, кількість грибів зібраних Настею, усі імена учнів та учениць, які збирали гриби.

# Завдання 2
m = {"Миколка":"3.4","Настя":"4","Тетяна":"3.3","Петро":"5.2"}
print(m.get("Іван"))
print(m.get("Настя"))
print(m.keys())

Завдання 3. Розробіть код створення словника, ключами і значеннями якого є назви комунальних послуг та ціни: Споживання газу - 51 грн, опалення 1350 грн, електроенергія - 152 грн, користування телефоном - 112 грн. До створеного словника додайте послугу: холодна вода - 63 грн. Визначте ціну за електроенергію і телефон. Обчисліть загальну суму послуг.

# Завдання 3
n = {"Споживання газу":51,"Опалення":1350, "Електроенергія":152, "Користування телефоном":112}
n.update({"Холодна вода":63})
print(n)
print(n.get("Електроенергія"))
print(n.get("Телефон"))
p = list (n.values()) # Створення списку з цін за комунальні послуги
print('Список комунальних', p)
print('Всього за комунальні послуги', sum(p)) # Додавання елементів списку

Завдання 4. Розробіть код створення словника, елементами якого є імена та прізвища видатних українських лікарів і лікарок і роки їхнього життя: Микола Амосов (1913-2002), Софія Окуневська-Морачевська (1865-1926), Олександр Богомолець (1881-1946), Володимир Філатов (1875-1956). Додайте у список Микола Скліфософський (1836-1904). Перевірте наявність у словнику Володимира Філатова, визначте роки життя Олександра Богомольця.

# Завдання 4
a = {'Микола Амосов':'(1913-2002)', 'Софія Окуневська-Морачевська':'(1865-1926)', 'Олександр Богомолець':'(1881-1946)', 'Володимир Філатов':'(1875-1956)'}
a.update({'Микола Скліфософський':'(1836-1904)'})
print(a)
print(a.get('Володимир Філатов'))
print(a.get('Олександр Богомолець'))

Завдання 5. У шкільній бібліотеці зберігаються підручники з різних шкільних предметів. Їх кількість така: з фізики - 95, біології - 40, історії України - 60, математики - 70. Розробіть код створення словника з цих даних. Видаліть із словника дані про підручник з біології, додайте підручник з інформатики - 60. Визначте наявність підручників з історії України та хімії.

#  Завдання 5
k = {'Фізика': 95, 'Біологія': 40,' Історія_України': 60, 'Математика': 70}
del k['Біологія']
print(k)
k.update({'Інформатика': 60})
print(k)
print(a.get('Історія_України'))
print(a.get('Хімія'))

Коментарі