List là một trong những kiểu dữ liệu cơ bản trong Python lưu trữ các giá trị dưới dạng mảng (collection) có thứ tự, có thể thay đổi và cho phép chứa dữ liệu trùng lặp. Thao tác với List thông qua các phương thức thêm, sửa, xóa các phần tử trong đó là những kiến thức bắt buộc mọi lập trình viên Python đều nắm vững.
Mặc dù vậy, có nhiều anh em mới làm Python còn nhầm lẫn trong việc sử dụng một số hàm có chức năng tương đối giống nhau với List, vì vậy bài viết hôm nay chúng ta cùng nhau làm rõ về phương thức append trong Python và so sánh nó với một số hàm khác tương tự nhé.
Phương thức Append
Append là phương thức dùng để thêm một phần tử vào cuối một List trong Python. Phần tử được thêm vào có thể là một số, một List, một chuỗi hoặc một Tuple.
Cú pháp hàm append trong Python:
list.append(obj)
trong đó obj là đối tượng được dùng để thêm vào cuối list
Ví dụ:
- Thêm một ký tự/ số vào cuối List
mylist = ["A", "B", "C"] mylist.append("D") print(mylist) #>> ["A", "B", "C", "D"]
- Thêm một List vào cuối List
mylist = ["A", "B", "C"] addlist = ["D", "E"] mylist.append(addlist) print(mylist) #>> ['A', 'B', 'C', ['D', 'E']]
- Thêm một Tuple vào cuối List
mylist = ["A", "B", "C"] addtuple = (1, 2) mylist.append(addtuple) print(mylist) #>> ['A', 'B', 'C', (1, 2)]
Ở các ví dụ trên chúng ta có thể thấy rằng khi thêm 1 phần tử vào cuối List thì chiều dài (length) của List luôn chỉ tăng lên 1 dù cho phần tử là một List hay Tuple. Nói cách khác, hàm append thêm cả đối tượng obj vào list chứ không phải thêm từng phần tử trong obj (trường hợp obj là List hay Tuple) vào list ban đầu.
Đây là điểm mấu chốt giúp bạn có thể phân biệt giữa append và các hàm khác cùng chức năng thêm phần tử vào List. Chúng ta cùng tìm hiểu thêm về 2 hàm khác cũng có chức năng tương tự append là insert và extend.
Phương thức Insert
Insert là phương thức chèn đối tượng obj vào trong list tại chỉ số index đầu vào.
Cú pháp
list.insert(index, obj)
trong đó index là chỉ mục nơi đối tượng obj được chèn, obj là đối tượng cần chèn vào list đã cho.
Ví dụ:
list1 = ['java', 'python', 'c++', 'php', 'sql'] list1.insert(3, 'android') print ("List sau khi duoc chen them doi tuong 'android': ", list1) #>> List sau khi duoc chen them doi tuong 'android': ['java', 'python', 'c++', 'android', 'php', 'sql']
Insert được bổ sung tham số là vị trí cần chèn nên nó giúp hàm trở nên linh hoạt hơn so với append. Tuy nhiên về mặt hiệu năng (performance), append giúp code của bạn chạy nhanh hơn so với việc sử dụng insert với chỉ số truyền vào là 0 (sẽ thực hiện chèn vào cuối List).
Tuyển dụng Python mọi cấp độ tại đây!
Phương thức Extend
Extend là phương thức cũng được dùng để thêm các nội dung vào cuối một List.
Cú pháp:
list.extend(seq)
trong đó seq là danh sách các phần tử sẽ được cộng thêm vào cuối list.
Ví dụ:
list1 = ['java', 'python', 'c++'] list2 = ['c++', 'sql'] list1.extend(list2); print ("List sau khi duoc mo rong them la : ", list1) #>> List sau khi duoc mo rong them la : ['java', 'python', 'c++', 'c++', 'sql']
Cùng có chức năng thêm nội dung vào cuối một List, tuy nhiên khác với append thì extend duyệt qua danh sách phần tử trong mảng cần thêm và nối thêm từng phần tử đó vào List. Điều này khiến kích thước của list ban đầu sẽ tăng lên đúng bằng kích thước của list nối thêm. Và thêm vào đó thì tham số seq trong hàm extend cũng sẽ chỉ nhận giá trị là một đối tượng có thể lặp lại như chuỗi, danh sách, dicts.
Để phân biệt rõ hơn giữa append và extend, ta có thể xem ví dụ dưới đây:
Kết luận
Như vậy trong trường hợp muốn chèn thêm một phần tử vào danh sách List trong Python, chúng ta có thể sử dụng 1 trong 3 phương thức là append, insert hay extend. Hãy lưu ý một số điểm dưới đây để lựa chọn sử dụng một cách hợp lý:
- Insert được sử dụng cùng chỉ số vị trí cần thêm, vì thế nó linh hoạt hơn. Trong khi đó append và extend sẽ chỉ cho phép chèn vào cuối của List
- Xét về hiệu năng thì append và extend tốt hơn insert, vì vậy hãy lưu ý nếu bài toán làm việc với một danh sách dữ liệu lớn
- Append có thể thêm một đối tượng bất kỳ loại nào vào danh sách, extend chỉ hoạt động trên các đối tượng có thể lặp và nối thêm lần lượt từng phần tử trong đó vào danh sách
Qua bài viết, hy vọng các bạn đã có thể nắm được rõ hơn cách hoạt động và sử dụng hàm append trong Python, điều này sẽ giúp bạn viết code một cách ngắn gọn và hiệu quả hơn rất nhiều trong dự án của mình. Cảm ơn các bạn đã đọc bài và hẹn gặp lại trong các bài viết tiếp theo của mình.
Tác giả: Phạm Minh Khoa
Xem thêm:
- Flask python là gì? – Những điều cần biết
- Khởi Đầu Dự Án Python Như Thế Nào Để Thuận Tiện Phát Triển Lên
- Selenium WebDriver trên Python
Hàng loạt việc làm IT lương cao trên TopDev đang chờ bạn, ứng tuyển ngay!