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

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

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

Два імені посилаються на один список, а третє отримує незалежну копію перед наступною мутацією. Варіант визначає 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 початковий список
alias_append значення для зміни через спільне ім’я
copy_append значення для зміни незалежної копії

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

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

Назви полів результату не змінюйте.

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: LR32_Прізвище_Група_VNN.pdf.