ЛР34. Спискові включення і генератори
Коротко про роботу
Потрібно відфільтрувати числа, піднести їх до квадрата та використати результат один раз або кілька разів. Варіант
визначає STUDENT_X.
Відкрити робочий зошит Як виконувати лабораторні
1. Умова
Потрібно відфільтрувати числа, піднести їх до квадрата та використати результат один раз або кілька разів.
Перша комірка зошита лише показує значення вашого STUDENT_X разом із типами. Вона не оголошує і не створює предметні
змінні. У коді кожного завдання перенесіть потрібні значення та самостійно оголосіть/створіть відповідні змінні.
2. Що треба знати
Робота виконується після Л1–Л14. Потрібні поняття:
- спискове включення
- генераторний вираз
sum()- одноразове споживання генератора
Межа матеріалу
Використовуйте поняття, вивчені до Л1–Л14. Не перетворюйте генератор на список до вправи з частковим споживанням.
3. Варіант, вхідні дані та результат
У зошиті заповніть STUDENT_NAME, STUDENT_GROUP і STUDENT_X від 1 до 30.
Вхідні дані
| Поле | Тип | Зміст |
|---|---|---|
values |
list |
вхідні числа |
threshold |
int |
нижня межа фільтра |
Поля результату
| Поле | Зміст |
|---|---|
materialized |
квадрати значень, що проходять умову відбору |
aggregate |
сума всього сформованого списку |
first_pass_sum |
сума генератора під час першого проходу |
second_pass_sum |
сума того самого генератора під час другого проходу |
Назви полів результату не змінюйте. Перша комірка лише показує значення варіанта і не створює предметні змінні. У
кожному завданні самостійно присвойте потрібним вхідним змінним показані значення. Результуючі й проміжні змінні
створюйте звичайними присвоєннями. Імена з префіксом alp_ службові.
4. Терміни і правила
Терміни
- спискове включення — короткий запис побудови нового списку з ітерації та необов’язкової умови.
- генераторний вираз — лінивий потік значень, які обчислюються під час споживання.
- одноразове споживання — вже отримані з генератора значення не з’являються повторно.
Правила
- До обробки входять значення
value >= threshold. materializedмістить квадрати таких значень у початковому порядку.aggregate— сума всьогоmaterialized.- Генератор віддає ті самі квадрати. Перший
sum(...)споживає весь генератор, тому другийsum(...)для того самого об’єкта дає0.
5. Завдання
Завдання 1
Через спискове включення відберіть value >= threshold, піднесіть значення до квадрата та запишіть список у
materialized. Суму запишіть у aggregate.
Завдання 2
Створіть генераторний вираз для тих самих квадратів. Не перетворюйте його на список.
Завдання 3
Обчисліть sum(...) для генератора двічі. Перший результат запишіть у first_pass_sum, другий — у second_pass_sum.
6. Перевірка і здача
- Запустіть самоперевірку та виправте помилки.
- Перезапустіть ядро і виконайте роботу ще раз від початку.
- Збережіть
.ipynbі PDF з кодом та результатами.
Назва PDF: LR34_Прізвище_Група_VNN.pdf.