Trong Python a += b không phải luôn luôn hoạt động giống với a = a + b. Trong các điều kiện khác nhau, các toán hạng giống nhau có thể cho ra các kết quả khác nhau.

Xét các ví dụ xử lý list sau:

1. Ví dụ 1

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------

list1 = [5, 4, 3, 2, 1] 
list2 = list1 
list1 += [1, 2, 3, 4] 
  
print(list1) 
print(list2) 

Kết quả in ra là:

[5, 4, 3, 2, 1, 1, 2, 3, 4]
[5, 4, 3, 2, 1, 1, 2, 3, 4]

2. Ví dụ 2

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------

list1 = [5, 4, 3, 2, 1] 
list2 = list1 
list1 = list1 + [1, 2, 3, 4] 
  
# Contents of list1 are same as above  
# program, but contents of list2 are 
# different. 
print(list1) 
print(list2) 

Kết quả in ra là:

[5, 4, 3, 2, 1, 1, 2, 3, 4]
[5, 4, 3, 2, 1]

–  Biểu thức list1 += [1, 2, 3. 4] sẽ sửa đổi danh sách list1 một cách in-place (tại chỗ), điều này có nghĩa là nó sẽ mở rộng cái list – danh sách sao cho “list1” và “list2” vẫn có tham chiếu đến cùng một mảng.

–  Biểu thức list1 = list1 + [1, 2, 3, 4] tạo ra một list – danh sách mới và thay đổi tham chiếu của “list1” tới list mới đó, còn “list2” vẫn tham chiếu đến list cũ.

Nguồn và Tài liệu tiếng anh tham khảo:

Tài liệu từ cafedev:

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!