Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách clone hoặc copy list trong Python?

Trong Python, toán tử gán không tạo object mới, chỉ đặt tên khác cho object đã có. Xác minh bằng id():

>>> L1 = [1,2,3,4]
>>> L2 = L1
>>> id(L1)
185117137928
>>> id(L2)
185117137928

Để thực sự copy list, dùng các phương pháp sau:

1. Toán tử slice [:]

>>> L1 = [1,2,3,4]
>>> L2 = L1[:]
>>> id(L1), id(L2)
(185117025160, 185117171592)  # khác nhau

2. Hàm built-in list()

>>> L1 = [1,2,3,4]
>>> L2 = list(L1)
>>> id(L1), id(L2)
(185117295816, 185117209352)

3. Module copy: shallow copy và deep copy

Shallow copy: list con copy bằng tham chiếu. Deep copy: copy lồng nhau (nested copying).

>>> import copy
>>> L1 = [1,2,3,4]
>>> L2 = copy.copy(L1)      # shallow copy
>>> L3 = copy.deepcopy(L1)  # deep copy
>>> id(L1), id(L2), id(L3)
(185117025160, 185117295880, 185117304328)