Перейти до змісту

ЛР29. Спільні списки, копії та тести змін

Коротко про роботу

Два імені посилаються на один список, а третє отримує незалежну копію перед наступною мутацією. Варіант визначає STUDENT_X.

Відкрити робочий зошит Як виконувати лабораторні

1. Умова

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

Перша комірка зошита лише показує значення вашого STUDENT_X разом із типами. Вона не оголошує і не створює предметні змінні. У коді кожного завдання перенесіть потрібні значення та самостійно оголосіть/створіть відповідні змінні.

2. Що треба знати

Робота виконується після Л1–Л12. Потрібні поняття:

  1. змінюваний list
  2. кілька імен одного об’єкта
  3. copy()
  4. мутація

Межа матеріалу

Використовуйте поняття, вивчені до Л1–Л12. Не використовуйте глибоке копіювання або вкладені структури. Робота перевіряє базову модель одного списку.

3. Варіант, вхідні дані та результат

У зошиті заповніть STUDENT_NAME, STUDENT_GROUP і STUDENT_X від 1 до 30.

Вхідні дані

Поле Тип Зміст
initial list початковий список
alias_append int значення для зміни через спільне ім’я
copy_append int значення для зміни незалежної копії

Поля результату

Поле Зміст
original_final фінальний початковий список
alias_final фінальний список через спільне ім’я
copy_final фінальна незалежна копія

Назви полів результату не змінюйте. Перша комірка лише показує значення варіанта і не створює предметні змінні. У кожному завданні самостійно присвойте потрібним вхідним змінним показані значення. Результуючі й проміжні змінні створюйте звичайними присвоєннями. Імена з префіксом alp_ службові.

4. Терміни і правила

Терміни

  • псевдонім списку — друге ім’я того самого об’єкта списку.
  • незалежна копія — новий список з окремим станом.
  • мутація — зміна вже наявного об’єкта.

Правила

  1. Почніть з original = initial.copy(), потім створіть alias = original і незалежну copy = original.copy().
  2. Через alias.append(alias_append) змініть спільний список.
  3. Через copy.append(copy_append) змініть незалежну копію.
  4. Фінальні значення трьох імен запишіть у original_final, alias_final і copy_final.

Експеримент з іменами та об’єктами

original = list(initial)
alias = original
independent = original.copy()

alias.append(alias_append)
independent.append(copy_append)

До запуску спрогнозуйте три фінальні списки. Після запуску поясніть, які імена посилаються на один об’єкт.

5. Завдання

Завдання 1

До запуску запишіть прогноз фінальних значень original, alias і копії.

Завдання 2

Виконайте alias.append(alias_append) і додайте copy_append до незалежної копії.

Завдання 3

Запишіть original_final, alias_final і copy_final. Вкажіть, які два імена посилаються на один список.

6. Перевірка і здача

  1. Запустіть самоперевірку та виправте помилки.
  2. Перезапустіть ядро і виконайте роботу ще раз від початку.
  3. Збережіть .ipynb і PDF з кодом та результатами.

Назва PDF: LR29_Прізвище_Група_VNN.pdf.