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

Списки (list)

📖 Теорія
Список — впорядкована змінювана колекція елементів. Може містити дані різних типів.

Створення: my_list = [елемент1, елемент2, ...]

Основні операції:
• Доступ за індексом: список[0]
• Зріз: список[1:4]
• Додавання в кінець: append()
• Вставка: insert(індекс, значення)
• Видалення: remove(значення) або pop(індекс)
• Довжина: len(список)
• Сортування: sort() або sorted()
• Пошук: in оператор

Спискові включення (list comprehension) — потужний спосіб створити список:
💡 Приклад коду
Вивід:

                        
📝 ЗАВДАННЯ (3)
1.
Завдання 1: Аналіз оцінок
10 XP
Створіть список із 5 оцінок (введіть з клавіатури). Виведіть: мінімальну, максимальну, середню оцінку та список у відсортованому вигляді.
💡 Підказка: Використовуйте min(), max(), sum()/len() та sort()
🔓 Розв'язок:
grades = []
for i in range(5):
    g = int(input(f'Оцінка {i+1}: '))
    grades.append(g)
print(f'Мінімум: {min(grades)}')
print(f'Максимум: {max(grades)}')
print(f'Середнє: {sum(grades)/len(grades):.1f}')
grades.sort()
print(f'Відсортовано: {grades}')
Вивід:

                                

2.
Завдання 2: Список покупок
20 XP
Напишіть програму «Список покупок». Користувач вводить товари по одному (порожній рядок — кінець введення). Програма виводить пронумерований список і загальну кількість товарів.
💡 Підказка: Використовуйте while True та break при порожньому рядку. Для нумерації використовуйте enumerate(список, 1)
🔓 Розв'язок:
shopping = []
print('Введіть товари (порожній рядок — кінець):')
while True:
    item = input('Товар: ')
    if item == '':
        break
    shopping.append(item)
print(f'\nВаш список ({len(shopping)} товарів):')
for i, item in enumerate(shopping, 1):
    print(f'{i}. {item}')
Вивід:

                                

3.
Завдання 3: Журнал температур
30 XP
Напишіть програму, яка приймає 7 значень температури (за днями тижня). Знайдіть найтепліший і найхолодніший день, порахуйте середню температуру та виведіть дні, коли було вище за середню.
💡 Підказка: Створіть список днів і список температур. Використовуйте zip() для зв'язку дня з температурою.
🔓 Розв'язок:
days = ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Нд']
temps = []
for day in days:
    t = float(input(f'{day}: '))
    temps.append(t)
avg = sum(temps) / len(temps)
print(f'Середня: {avg:.1f}')
print(f'Макс: {max(temps)} ({days[temps.index(max(temps))]})')
print(f'Мін: {min(temps)} ({days[temps.index(min(temps))]})')
print('Вище за середню:')
for day, t in zip(days, temps):
    if t > avg:
        print(f'  {day}: {t}')
Вивід: