Python Tutorial

Поверхностное копирование тремя способами в Python

Поверхностное копирование тремя способами в Python

Поверхностное копирование в Python создает новый объект, который хранит ссылки на вложенные объекты, находящиеся в исходном объекте. В отличие от глубокого копирования, при поверхностном копировании не создаются копии вложенных объектов. Это означает, что если исходный объект содержит, например, списки или словари, то копия будет содержать ссылки на те же списки или словари, а не их копии.
Есть список origin_list.
Мы можем скопировать его в отдельный новый список следующими способами:
  • с помощью метода copy()
  • с помощью преобразования list()
  • с помощью разделения списка или среза от первого до последнего элемента [:]
l1, l2 и l3 являются копиями — то есть новыми объектами со своими собственными значениями которые не связанны с исходным списком объектов [1, 2, 3], на который ссылается переменная origin_list. Изменение origin_list не влияет на копии l1, l2 и l3
origin_list = [1, 2, 3]

l1 = origin_list.copy()
l2 = list(origin_list)
l3 = origin_list[:]

print(origin_list) 
print(l1 is origin_list)
print(l2 is origin_list)
print(l3 is origin_list)

origin_list.append(999)
print(origin_list) 
print(l1) 
print(l2) 
print(l3)

# [1, 2, 3]
# False
# False
# False
# [1, 2, 3, 999]
# [1, 2, 3]
# [1, 2, 3]
# [1, 2, 3]
ВИДЕО:
Списки\кортежи