Модуль 4: Структури даних

Словники (dict)

📖 Теорія
Словник — колекція пар 'ключ: значення'. Ключі унікальні.

Створення: my_dict = {'ключ1': значення1, 'ключ2': значення2}

Основні операції:
• Доступ: словник['ключ'] або .get('ключ', за_замовчуванням)
• Додавання/зміна: словник['ключ'] = значення
• Видалення: del словник['ключ'] або .pop('ключ')
• Перевірка ключа: 'ключ' in словник
• Усі ключі: .keys()
• Усі значення: .values()
• Усі пари: .items()

Словники ідеальні для структурованих даних: картки користувачів, налаштування, підрахунок частот.
💡 Приклад коду
Вивід:

                        
📝 ЗАВДАННЯ (3)
1.
Завдання 1: Телефонна книга
10 XP
Створіть словник із 3 контактів (ім'я -> телефон). Додайте ще один контакт, видаліть один. Виведіть усі контакти у форматі 'Ім'я: телефон'.
💡 Підказка: Використовуйте .items() для перебору
🔓 Розв'язок:
contacts = {'Іван': '+38-050-111', 'Марія': '+38-050-222', 'Петро': '+38-050-333'}
contacts['Ольга'] = '+38-050-444'
del contacts['Петро']
for name, phone in contacts.items():
    print(f'{name}: {phone}')
Вивід:

                                

2.
Завдання 2: Підрахунок літер
20 XP
Попросіть користувача ввести слово. Створіть словник, де ключ — літера, значення — скільки разів вона зустрічається. Виведіть результат, відсортований за частотою (від найчастішої).
💡 Підказка: Переберіть літери в слові циклом for. Для підрахунку використовуйте dict.get(літера, 0) + 1. Для сортування — sorted() з key=lambda.
🔓 Розв'язок:
word = input('Введіть слово: ').lower()
counts = {}
for char in word:
    counts[char] = counts.get(char, 0) + 1
sorted_chars = sorted(counts.items(), key=lambda x: x[1], reverse=True)
print(f'Аналіз слова "{word}":')
for char, count in sorted_chars:
    print(f'  "{char}" — {count} разів')
Вивід:

                                

3.
Завдання 3: Журнал витрат
30 XP
Створіть програму обліку витрат. Користувач вводить категорію і суму (порожня категорія — кінець). Програма підсумовує витрати за категоріями та виводить підсумок: кожна категорія із сумою та загальні витрати.
💡 Підказка: Використовуйте словник, де ключ — категорія, значення — сума. Якщо категорія вже є, додавайте до неї.
🔓 Розв'язок:
expenses = {}
while True:
    category = input('Категорія (Enter — кінець): ')
    if category == '':
        break
    amount = float(input('Сума: '))
    expenses[category] = expenses.get(category, 0) + amount

print('\n=== Звіт про витрати ===')
total = 0
for cat, amt in expenses.items():
    print(f'{cat}: {amt:.2f} грн.')
    total += amt
print(f'Разом: {total:.2f} грн.')
Вивід: