2013-01-13 40 views
6

Tôi đang đọc Dive into Python 3 và tại phần danh sách, tác giả nói rằng bạn có thể nối các danh sách với toán tử "+" hoặc gọi phương thức extend(). Đây có phải chỉ là hai cách khác nhau để thực hiện thao tác không? Có lý do nào tôi nên sử dụng cái này hay cái kia không?Kết hợp các danh sách bằng Python 3

>>> a_list = a_list + [2.0, 3] 
>>> a_list.extend([2.0, 3]) 
+2

ghi đè toán tử '+' cho kết quả trong một danh sách khác, nó không phải là một bổ sung tại chỗ. Trong khi đó, mở rộng là một sửa đổi tại chỗ cho danh sách .. Việc sử dụng nên được chủ yếu vào logic của bạn, và có lẽ trên kích thước của danh sách của bạn ... –

Trả lời

12

a_list.extend(b_list) sửa đổi a_list tại chỗ. a_list = a_list + b_list tạo danh sách mới, sau đó lưu nó vào tên a_list. Lưu ý rằng a_list += b_list phải chính xác giống như phiên bản extend.

Sử dụng extend hoặc += có lẽ là hơi nhanh hơn, vì nó không cần phải tạo ra một đối tượng mới, nhưng nếu có tài liệu tham khảo khác để a_list xung quanh, đó là giá trị sẽ được thay đổi quá (mà có thể hoặc không thể được mong muốn).

Các vấn đề liên quan