Python có sao chép danh sách khi được giao không?

Trong blog này, chúng ta sẽ tìm hiểu về một phương thức mới trong Python - copy list. Trong khi viết mã, có những lúc người dùng cần sử dụng lại một đối tượng. Gõ lại từng dòng mã có vẻ vô dụng. Do đó, chúng tôi sử dụng phương pháp sao chép có sẵn trong danh sách

Mục lục

  1. Giới thiệu về danh sách sao chép
  2. Phương pháp danh sách sao chép Python
  3. Sao chép danh sách bằng cách sử dụng =
  4. Sử dụng phương thức tích hợp list() để sao chép danh sách
  5. Bớt tư tưởng

Giới thiệu về danh sách sao chép

Nghe thì dễ, sao chép một danh sách trong Python khá đơn giản. Nhưng chúng ta vẫn phải tuân theo cú pháp và biết khi nào và làm thế nào để sử dụng phương pháp sao chép danh sách. Phương pháp này giúp dễ dàng viết các phần mã xảy ra nhiều lần.

Nói rõ hơn, phương pháp này chỉ hoạt động trên danh sách.

Phương pháp danh sách sao chép Python

Phương thức copy() của Python sao chép danh sách và trả về danh sách đã sao chép. Nó không nhận bất kỳ tham số nào và trả về một bản sao nông của danh sách.
Bản sao nông là bản không hiển thị bất kỳ sửa đổi nào trong danh sách gốc. Danh sách được sao chép trỏ đến một vị trí bộ nhớ khác với danh sách ban đầu, vì vậy việc thay đổi một danh sách không ảnh hưởng đến danh sách khác.

cú pháp

list_new = list.copy()

Đầu vào.

#Defining a list list = [a,b,c] #Copying list list_new = list.copy() print ("This is the new list: " + str(list_new)) list_new.append(d) print ("The new list after adding a new element: " + str(list_new)) print ("The old list after adding a new element" + str(list))

Ở đây, chúng ta đã tạo danh sách rồi sao chép danh sách. Khi bạn thêm một phần tử vào danh sách mới, bạn có thể thấy rằng danh sách cũ không hiển thị sửa đổi.

đầu ra

This is the new list: [a,b,c] The new list after adding a new element: [a,b,c,d] The old list after adding a new element: [a,b,c]

Sao chép danh sách bằng cách sử dụng =

Chúng ta có thể sử dụng toán tử = để sao chép danh sách. Hạn chế duy nhất của phương pháp này là nó không tạo ra một bản sao nông.
Điều đó nói rằng, nếu chúng tôi thực hiện bất kỳ sửa đổi nào đối với danh sách mới, danh sách cũ cũng sẽ được sửa đổi.

Đầu vào

#Defining a list list = [a,b,c] #Copying list list_new = list print ("This is the new list: " + str(list_new)) list_new.append(d) print ("The new list after adding a new element: " + str(list_new)) print ("The old list after adding a new element" + str(list))

Ở đây, chúng ta đã tạo danh sách rồi sao chép danh sách. Khi bạn thêm một phần tử vào danh sách mới, bạn có thể thấy rằng danh sách cũ cũng được sửa đổi vì phương pháp này không tạo bản sao nông.

đầu ra

This is the new list: [a,b,c] The new list after adding a new element: [a,b,c,d] The old list after adding a new element: [a,b,c,d]

Sử dụng phương thức tích hợp list() để sao chép danh sách

Một cách khác để sao chép danh sách trong Python là sử dụng phương thức tích hợp sẵn list(). Nó cũng tạo ra một bản sao nông, nghĩa là bất cứ khi nào một sửa đổi được thực hiện trong danh sách mới, nó sẽ không hiển thị trên danh sách cũ

Đầu vào

#Defining a list list = [a,b,c] #Copying list list_new = list(list) print ("This is the new list: " + str(list_new)) list_new.append(d) print ("The new list after adding a new element: " + str(list_new)) print ("The old list after adding a new element" + str(list)
Ở đây, chúng ta đã tạo danh sách rồi sao chép danh sách. Khi bạn thêm một phần tử vào danh sách mới, bạn có thể thấy rằng danh sách cũ không hiển thị sửa đổi.

đầu ra

This is the new list: [a,b,c] The new list after adding a new element: [a,b,c,d] The old list after adding a new element: [a,b,c]

Bớt tư tưởng

Sao chép danh sách là một cách dễ dàng để sao chép trong Python. Đó là một phương thức tích hợp giúp viết mã dễ dàng hơn. Bạn có thể sử dụng các phương pháp khác được đề cập ở trên nhưng hãy chắc chắn rằng bạn biết về bản sao nông. Mọi người có thể đọc thêm về các khái niệm Python tại đây

Indhumathy Chelliah

Theo

27 Tháng Bảy, 2020

·

5 phút đọc

·

Chỉ dành cho thành viên

Sao chép nông so với Sao chép sâu so với Chuyển nhượng trong Python

Tổng quan nhanh về sao chép nông, sao chép sâu và gán trong python

Ảnh của Daniel Öberg trên Bapt

Sao chép các đối tượng có thể được thực hiện theo ba cách trong Python

  1. Thao tác gán
    a=b
  2. Bản sao nông
    bản sao()
    a=copy(b)
  3. bản sao sâu
    a=deepcopy(b)

Hoạt động chuyển nhượng

Python có sao chép khi được giao không?

Các câu lệnh gán trong Python không sao chép các đối tượng , chúng tạo ra các ràng buộc giữa mục tiêu và đối tượng. Đối với các bộ sưu tập có thể thay đổi hoặc chứa các mục có thể thay đổi, đôi khi cần có một bản sao để người dùng có thể thay đổi một bản sao mà không cần thay đổi bản kia.

Các danh sách có được sao chép bằng Python không?

Bạn không thể sao chép danh sách chỉ bằng cách nhập list2 = list1 , bởi vì. list2 sẽ chỉ là một tham chiếu đến list1 và những thay đổi được thực hiện trong list1 cũng sẽ tự động được thực hiện trong list2. Có nhiều cách để tạo một bản sao, một cách là sử dụng phương thức Danh sách tích hợp copy().

Danh sách () có tạo bản sao không?

Sử dụng phương thức tích hợp sẵn list() để sao chép danh sách. Một cách khác để sao chép danh sách trong Python là sử dụng phương thức tích hợp sẵn list(). Nó cũng tạo ra một bản sao nông có nghĩa là bất cứ khi nào một sửa đổi được thực hiện trong danh sách mới, nó sẽ không hiển thị trên danh sách cũ.

Bài tập Python có phải là bản sao sâu không?

Sử dụng phép gán = nếu bạn muốn những thay đổi mới ảnh hưởng đến danh sách ban đầu. Sử dụng bản sao sâu nếu bạn không muốn những thay đổi mới ảnh hưởng đến danh sách ban đầu . Nhớ. bản sao sâu đảm bảo rằng đối tượng mới được sao chép không được tham chiếu đến đối tượng ban đầu theo bất kỳ cách nào.

Chủ đề