Копирование массива
Копирование массива — это создание нового массива с теми же значениями элементов. После копирования изменения одного массива не должны менять другой.
Сначала должен существовать исходный массив, например после заполнения массива. Затем создают массив-приёмник и последовательно обращаются к элементам по их индексам. Такое обращение использует правила индексации массива.
Здесь \(A\) — исходный массив, \(B\) — его копия, а \(n\) — количество элементов. Если копируются значения, массивы независимы: изменение элемента массива \(A\) не изменяет соответствующий элемент \(B\).
a = [4, 7, 2] b = [0] * len(a) for i in range(len(a)): b[i] = a[i] b[0] = 10 print(a) # [4, 7, 2] print(b) # [10, 7, 2]
Пусть \(A=(3, 8, 5)\). При копировании получаем \(B=(3, 8, 5)\). Если затем записать в \(B[1]\) число \(0\), то \(A\) останется равным \((3, 8, 5)\), а \(B\) станет \((3, 0, 5)\).
Запись вроде b = a в некоторых языках не копирует элементы, а заставляет две переменные обращаться к одному массиву. Тогда изменение одного имени изменяет и данные, доступные через другое имя. Для независимой копии используйте цикл переноса значений или специальную операцию копирования, если она разрешена языком.
После выполнения цикла b[i] = a[i] для всех индексов что произойдёт, если изменить b[2]?
Главное
- Копирование массива переносит значения по одинаковым индексам: \(B_i=A_i\).
- Независимую копию создают циклом или специальной операцией копирования, а не простой общей ссылкой.
- После копирования изменение элемента бір массива не меняет другой.