Kiểu dữ liệu List trong Python - Phần 2

Lập trình Python cơ bản

4.8 (28 đánh giá)
Tạo bởi Kteam Cập nhật lần cuối 3 năm trước 106.337 lượt xem 80 bình luận
Tác giả/Dịch giả: Kteam
Học nhanh

Danh sách bài học

01. Giới thiệu ngôn ngữ lập trình Python 02. Cài đặt môi trường Python 03. Cách chạy chương trình Python 04. Cách ghi chú trong Python 05. Biến trong Python 06. Kiểu dữ liệu số trong Python 07. Kiểu dữ liệu chuỗi trong Python - Phần 1 08. Kiểu dữ liệu chuỗi trong Python - Phần 2 09. Kiểu dữ liệu chuỗi trong Python - Phần 3 10. Kiểu dữ liệu chuỗi trong Python - Phần 4 11. Kiểu dữ liệu chuỗi trong Python - Phần 5 12. Kiểu dữ liệu List trong Python - Phần 1 13. Kiểu dữ liệu List trong Python - Phần 2 14. Kiểu dữ liệu Tuple trong Python 15. Sự khác nhau về toán tử của Hashable object và Unhashable object trong Python 16. Kiểu dữ liệu Set trong Python 16. Kiểu dữ liệu Set trong Python – Phần 2 17. Kiểu dữ liệu Dict trong Python - Phần 1 18. Kiểu dữ liệu Dict trong Python - Phần 2 19. Xử lý file trong Python 20. Iteration và một số hàm hỗ trợ cho iteration object trong Python 21. Nhập xuất trong Python - Hàm xuất 22. Nhập xuất trong Python - Hàm nhập 23. Kiểu dữ liệu Boolean trong Python 24. Cấu trúc rẽ nhánh trong Python 25. Vòng lặp While trong Python 26. Vòng lặp For trong Python - Phần 1 27. Vòng lặp For trong Python - Phần 2 28. Kiểu dữ liệu Function trong Python - Sơ lược về hàm 29. Kiểu dữ liệu Function trong Python - Positional và keyword argument 30. Kiểu dữ liệu Function trong Python - Packing và unpacking arguments 31. Kiểu dữ liệu Function trong Python - Biến locals và globals 32. Kiểu dữ liệu Function trong Python - Return 33. Kiểu dữ liệu function trong Python – Yield 34. Kiểu dữ liệu function trong Python – Lambda 35. Kiểu dữ liệu Function trong Python - Functional tools 36. Kiểu dữ liệu Function trong Python - Đệ quy (recursion) 37. Giới thiệu module trong Python 38. Package trong python

Kiểu dữ liệu List trong Python - Phần 2

Dẫn nhập

Trong bài trước, Kteam đã giới thiệu cho các bạn KIỂU DỮ LIỆU LIST TRONG PYTHON – Phần 1.

Ở bài này Kteam sẽ tiếp tục đề cập đến KIỂU DỮ LIỆU LIST TRONG PYTHON – Các phương thức List. 


Nội dung

Các kiến thức để có thể hiểu tốt được bài viết này

Trong bài học này, chúng ta sẽ cùng tìm hiểu các vấn đề

  • Giới thiệu về phương thức của kiểu dữ liệu List trong Python
  • Các phương thức tiện ích
  • Các phương thức cập nhật
  • Các phương thức xử lí

Giới thiệu về phương thức của kiểu dữ liệu List trong Python

Kiểu dữ liệu List của Python có một số phương thức giúp chúng ta xử lí các vấn đề liên quan đến nó. Kteam sẽ giúp bạn tìm hiểu các phương thức đó.

Một số phương thức Kteam sẽ không nói rõ về nó vì có một số kiến thức bạn chưa nắm được. Điển hình đó là hàm.

Bên cạnh đó có một số phương thức có dạng biến thể là một hàm sẽ được Kteam đề cập ở một bài trong tương lai


Các phương thức tiện ích

Phương thức count

Cú pháp:

<List>.count(sub, [start, [end]])

Công dụng: Giống với phương thức count của kiểu dữ liệu chuỗi.

  • Trả về một số nguyên, chính là số lần xuất hiện của sub trong List.
  • Còn start end là số kĩ thuật slicing (lưu ý không hề có bước).

Phương thức index

Cú pháp:

<List>.index(sub[, start[, end]])

Công dụng: Tương tự phương thức index của  kiểu dữ liệu chuỗi.


Phương thức copy

Cú pháp:

<List>.copy()

Công dụng: Trả về một List tương tự với List[:]


Phương thức clear

Cú pháp:

<List>.clear()

Công dụng: Xóa mọi phần tử có trong List.

Lưu ý: Các phiên bản Python 2.X hoặc dưới Python 3.2 sẽ không có phương thức này

Phương thức trên bản chất không như những cách gán với một List rỗng. Giống như dưới đây:

Phương thức clear sẽ xóa đi các phần tử ở trong List. Các bạn sẽ biết thêm khi biết tới câu lệnh del sẽ được Kteam giới thiệu trong các bài sau.

Để thể hiện rõ sự khác biệt giữa hai trường hợp trên. Kteam sẽ lấy ví dụ để minh họa:

  • Bạn còn nhớ ví dụ về việc Tèo và gấu của tèo dùng chung số tiền chứ?

Tiếp đến, ta sẽ dùng phương thức clear.


Các phương thức cập nhật

Phương thức append

Cú pháp:

<List>.append(x)

Công dụng: Thêm phần tử x vào cuối List

Chú ý: Đừng bao giờ append một list vào chính nó.

Khi ta append một list vào chính nó, thì trên thực tế, nó sẽ tạo ra một vòng lặp vô tận. Trong ví dụ trên, khi ta append a vào list a, thì nó sẽ truy xuất giá trị của a để có thể append. Nhưng vì giá trị của a đang được thay đổi, nên nó sẽ lại append trước khi truy xuất. Điều này sẽ lặp lại mãi mãi vì giá trị a sẽ luôn luôn được thay đổi. Kết quả [1, 2, [...]] chính là đại diện cho sự lặp vô tận đó.


Phương thức extend

Cú pháp:

<List>.extend(iterable)

Công dụng: Thêm từng phần tử một của iterable vào cuối List.


Phương thức insert

Cú pháp:

<List>.insert (i, x)

Công dụng: Thêm phần x vào vị trí i ở trong List.

Nếu vị trí i lại lớn hơn hoặc bằng số phần tử ở trong List thì kết quả sẽ tương tự như phương thức append.

Nếu vị trí i là một số âm, bạn cần lưu ý kỹ ví dụ sau. Bạn chắc vẫn còn nhớ về việc indexing với vị trí là một số âm? nếu không nhớ bạn có thể xem lại bài KIỂU DỮ LIỆU CHUỖI TRONG PYTHON – Phần 2 trước khi vào ví dụ này.

Khi bạn insert mà lại dùng vị trí i là số âm, thì vị trí được insert sẽ là i –1.

Nếu vị trí i –1 (đang xét indexing âm) không có trong List, mặc định, phần tử x sẽ được thêm vào đầu List

Chú ý: Cũng giống như phương thức append, Kteam khuyên bạn đừng bao giờ insert một list vào chính nó, bất kể ở vị trí nào.


Phương thức pop

Cú pháp:

<List>.pop([i])

Công dụng: Bỏ đi phần tử thứ i trong List và trả về giá trị đó. Nếu vị trí i không được cung cấp, phương thức này sẽ tự bỏ đi phần tử cuối cùng của List và trả về giá trị đó.


Phương thức remove

Cú pháp:

<List>.remove(x)

Công dụng: Bỏ đi phần tử đầu tiên trong List có giá trị x. Nếu trong List không có giá trị x sẽ có lỗi được thông báo


Các phương thức xử lí

Phương thức reverse

Cú pháp:

<List>.reverse()

Công dụng: Đảo ngược các phần tử ở trong List.


Phương thức sort

Phương thức sort giúp ta sắp xếp một list theo một thứ tự nào đó (có thể sắp xếp một cách mặc định, hoặc sắp xếp theo cách mà chúng ta muốn)

Cú pháp:

<List>.sort(key=None, reverse=False)

Công dụng:  Sắp xếp các phần tử từ bé đến lớn bằng cách so sánh trực tiếp.

Trong đó:

  • Nếu reverse False (false là giá trị mặc định), list sẽ được sắp xếp từ bé đến lớn (các phần tử nhỏ hơn sẽ đứng trước), và ngược lại, nếu reverse là True, list sẽ được sắp xếp từ lớn đến bé.
  • Tham số key mặc định là None (tức là sẽ sắp xếp một cách mặc định). Còn nếu key được chỉ định, thì các phần tử được sắp xếp theo cái “quy ước” của key.

Ví dụ 1: sắp xếp các list (key = None)

Vì sao nói nó là so sánh trực tiếp. Bởi vì không chỉ số, nó còn so sánh cả chuỗi, cả List, và mọi thứ khác.

Ghi nhớ rằng, các phần tử phải có thể so sánh với nhau. Trường hợp dưới đây bạn không thể so sánh chuỗi với số được, do đó sẽ có lỗi hiện lên.

Chúng ta sẽ nói đến từ khóa reverse. Từ khóa này bạn chỉ có thể cho 2 giá trị, một là True, hai là False.

  • Nếu là False, các phần tử được sắp xếp từ bé đến lớn, còn ngược lại là từ lớn đến bé.

dụ 2: sắp xếp các list (có tham số key được truyền vào)

Chúng ta có thể thấy rõ ràng rằng: Cùng một giá trị ban đầu, cùng một phương thức sort, nhưng giá trị sau khi sort lại khác nhau hoàn toàn. Nguyên nhân ở đây chính là nằm ở tham số key. Trong ví dụ trên, đối với list a, chương trình sẽ sắp xếp theo mặc định (so sánh trực tiếp 2 chuỗi, đưa chuỗi nhỏ hơn về đầu list). Còn đối với list b, chương trình sẽ sắp xếp dựa trên việc so sánh độ dài của các chuỗi (vì key = len, tức là lấy độ dài). Kết quả của b sau khi sort là một list có các chuỗi với độ dài tăng dần.

Bằng cách truyền cho tham số key một phương thức nào đó (hoặc là một hàm – Khái niệm mà Kteam sẽ đề cập trong tương lai), ta có thể để cho một list được sắp xếp theo cách của mình. Ví dụ dưới đây là một cách sắp xếp một list với cả chuỗi và số, dựa trên việc chuyển toàn bộ các số sang kiểu chuỗi và so sánh.

Vì đây là một phần tương đối mới, nên khi các bạn tiếp cận với khái niệm hàm, Kteam sẽ thêm các ví dụ kèm giải thích để các bạn hiểu rõ hơn.


Củng cố bài học

Đáp án bài trước

Bạn có thể tìm thấy câu hỏi của phần này tại CÂU HỎI CỦNG CỐ trong bài KIỂU DỮ LIỆU LIST TRONG PYTHON – Phần 1.

  1. Những đáp án c, d là các cách khởi tạo đúng
  2. Không, vì ta có thể thay đổi nội dung của List
  3. Đáp án 

Câu hỏi củng cố

  1. Chuyện gì xảy ra khi ta dùng phương thức pop lên một List rỗng
  1. Ta có thể sắp xếp được List dưới đây bằng phương thức sort hay không?

Đáp án của phần này sẽ được trình bày ở bài tiếp theo. Tuy nhiên, Kteam khuyến khích bạn tự trả lời các câu hỏi để củng cố kiến thức cũng như thực hành một cách tốt nhất! 


Kết luận

Qua bài viết này, Bạn đã hiểu thêm về các phương thức của KIỂU DỮ LIỆU LIST TRONG PYTHON 

Ở bài sau. Kteam sẽ giới thiệu tới bạn một container nữa đó chính là KIỂU DỮ LIỆU TUPLE TRONG PYTHON.

Cảm ơn bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.


Tải xuống

Tài liệu

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Kiểu dữ liệu List trong Python - Phần 2 dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên likeshare để ủng hộ Kteam và tác giả nhé!


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Tác giả/Dịch giả

Khóa học

Lập trình Python cơ bản

Lập trình Python cơ bản

Đánh giá

4.8
28 đánh giá
Đánh giá
5
26
4
1
3
2
1
1
xuangiang đã đánh giá 4 tháng trước

Tran Tan Dat đã đánh giá 8 tháng trước

cảm ơn team kteam nhiều

Thái Sơn đã đánh giá khoảng 1 năm trước

Cảm ơn anh nhiều!

Nhatle đã đánh giá khoảng 1 năm trước

Nahida đã đánh giá 2 năm trước

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Thái Sơn đã bình luận khoảng 1 năm trước

Bài tập 2

lst = [[1, 2], ['abc', 'def']]
lst.sort(key=str,reverse=True)
print( lst)

Nahida đã bình luận 2 năm trước

lst = [[1, 2], ['abc', 'def']]

lst.sort(key=str)

print(lst)

Kaiten_Shu đã bình luận 3 năm trước

này là ở phiên bản subline tẽt nào v ạ?

trantrungthuong đã bình luận 3 năm trước

vì hàm clearn() trả về none nên c in ra là none

c=a.clearn()

chunchun1301 đã bình luận 3 năm trước
a = ['This', 'is', 'How', 'Kteam']
a.sort()
print(a)
cho mình hỏi sao kết quả đoạn này nó lại ra 
['How', 'Kteam', 'This', 'is'] ạ ? mình tìm cách sawssp xếp nhưng ko ra :<
à mình vừa tìm ra rùi ( cmt dành cho bạn nào cũng thắc mắc như mình) 
Trong so sánh chuỗi thì: số+chữ < chữ, thứ tự anpabet, chữ hoa < chữ thường. 
mình có đổi is thành Is thì thành công rùi ạ :") 

 

Không có video.