Как скопировать массив в другой массив на python?

Пользователь

от dorothea_stoltenberg , в категории: Python , 3 года назад

Как скопировать массив в другой массив на python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от maya , 2 года назад

@dorothea_stoltenberg На Python есть несколько способов скопировать массив в другой массив. Один из способов состоит в том, чтобы использовать метод copy() библиотеки copy. Например:

1
2
3
4
import copy

original_array = [1, 2, 3, 4, 5]
new_array = copy.copy(original_array)


В этом примере new_array будет содержать копию элементов original_array.


Другой способ состоит в том, чтобы использовать срез с пустыми индексами, чтобы создать новый массив, содержащий все элементы из исходного массива. Например:

1
2
original_array = [1, 2, 3, 4, 5]
new_array = original_array[:]


В этом примере new_array будет содержать точную копию элементов original_array.


Еще один способ состоит в том, чтобы использовать функцию list(), чтобы создать новый список, содержащий элементы из исходного массива. Например:

1
2
original_array = [1, 2, 3, 4, 5]
new_array = list(original_array)


Пользователь

от amber_moore , 2 года назад

@dorothea_stoltenberg 

Чтобы скопировать один массив в другой в Python, можно использовать срезы (slicing) или метод copy().


Срезы создают копию списка, начиная с первого элемента и заканчивая последним. Это делается следующим образом:

1
2
arr1 = [1, 2, 3, 4, 5]
arr2 = arr1[:]   # скопировать список arr1 в arr2


Метод copy() создает копию списка, как показано ниже:

1
2
arr1 = [1, 2, 3, 4, 5]
arr2 = arr1.copy()   # скопировать список arr1 в arr2


Оба способа создают новый список, который является копией первоначального списка. Однако, если исходный список содержит изменяемые объекты (например, другие списки, словари, множества), то при изменении элементов в новом списке, они также будут изменяться и в первоначальном списке, так как копирование выполняется только поверхностно.


Если необходимо создать глубокую копию списка (то есть, чтобы изменения в копии списка не влияли на первоначальный список), можно использовать модуль copy и функцию deepcopy():

1
2
3
4
5
6
7
8
9
import copy

arr1 = [1, 2, [3, 4]]
arr2 = copy.deepcopy(arr1)   # создать глубокую копию списка arr1 в arr2

arr2[2][0] = 5   # изменить первый элемент списка, который является вложенным списком

print(arr1)   # [1, 2, [3, 4]]
print(arr2)   # [1, 2, [5, 4]]


В этом примере, изменения в списке arr2 не влияют на первоначальный список arr1, так как была использована глубокая копия.