Hàm List sort() trong Python sắp xếp các đối tượng của list. Nó sắp xếp các mục theo thứ tự giảm dần và tăng dần. Nó nhận một tham số tùy chọn 'reverse' để sắp xếp danh sách theo thứ tự giảm dần. Theo mặc định, các phần tử của list được sắp xếp theo thứ tự tăng dần. Show
Nội dung chính
Cú phápCú pháp của sort() trong Python: Ví dụ sau minh họa cách sử dụng của sort() để sắp xếp các phần tử của đối tượng list theo thứ tự tăng dần. list1 = ['java', 'python', 'c++', 'php', 'sql'] list2 = [4, 2, 8, 10, 6] list1.sort() list2.sort() print ("List1 duoc sap xep: ", list1) print ("List2 duoc sap xep: ", list2) Chạy chương trình Python trên sẽ cho kết quả: List1 duoc sap xep: ['c++', 'java', 'php', 'python', 'sql'] List2 duoc sap xep: [2, 4, 6, 8, 10] Ví dụ 2: hàm List sort() trong PythonVí dụ sau minh họa cách sử dụng của sort() để sắp xếp các phần tử của đối tượng list theo thứ tự giảm dần. list1 = ['java', 'python', 'c++', 'php', 'sql'] list2 = [4, 2, 8, 10, 6] list1.sort(reverse=True) list2.sort(reverse=True) print ("List1 duoc sap xep: ", list1) print ("List2 duoc sap xep: ", list2) Chạy chương trình Python trên sẽ cho kết quả: List1 duoc sap xep: ['sql', 'python', 'php', 'java', 'c++'] List2 duoc sap xep: [10, 8, 6, 4, 2] Ví dụ 3: hàm List sort() trong PythonVí dụ sau minh họa cách sử dụng của sort() để sắp xếp các phần tử char của đối tượng list theo thứ tự giảm dần. list1 = ['a', 'p', 'p', 'l', 'e'] list1.sort(reverse=True) print ("List1 duoc sap xep: ", list1) Chạy chương trình Python trên sẽ cho kết quả: List1 duoc sap xep: ['p', 'p', 'l', 'e', 'a'] Bạn có biết sau khi tạo xong một list, bạn có thể tự do sắp xếp phần tử trong list python theo thứ tự tăng dần hay giảm dần không? Hãy tìm hiểu cách sắp xếp phần tử trong list python thông qua bài học này nhé. Để sắp xếp phần tử trong list python, chúng ta cần dùng phương thức sort() hoặc là Hàm List sorted() trong Python. Với hai cách này, chúng ta sẽ sắp xếp trực tiếp giá trị của các phần tử trong
list theo thứ tự tăng dần hoặc giảm dần. Sắp xếp phần tử trong list python theo thứ tự tăng dầnSắp xếp phần tử trong list theo thứ tự tăng dần | Hàm List sorted() trong PythonChúng ta sắp xếp phần tử trong list theo thứ tự tăng dần bằng hàm List sorted() trong Python với cú pháp sau đây:
Bạn cũng có thể lược bỏ đi phần lớn đối số và chỉ dùng đối số
Lại nữa,
chúng ta cũng có thể dùng hàm sorted() không những với list, mà còn với các iterable khác như chuỗi ký tự, tuple v.v… Do dó bạn cũng có thể thay thế đối số Điều duy nhất cần chú ý là, bản thân đối số bạn chỉ định không thay đổi, list thì vẫn là list, tuple thì vẫn là tuple, chuỗi thì vẫn là chuỗi. Nhưng kết quả trả về sẽ luôn là một Để dễ hiểu hơn, hãy xem ví dụ sau đây, chúng ta sẽ sử dụng hàm sorted() trong python như sau: list_cũ = ["C", "A", "B"] Bạn có thể thấy, một list mới đã được tạo ra từ Sắp xếp phần tử trong list theo thứ tự tăng dần | phương thức sort()Chúng ta cũng có thể sắp xếp phần tử trong list python theo thứ tự tăng dần bằng phương thức sort() với cú pháp đơn giản như dưới đây.
Phương thức sort() trong python sẽ sắp xếp lại phần tử trong chính list ban đầu theo thứ tự ban đầu. Lưu ý là bản thân list ban đầu được sắp xếp lại, chứ không có list mới nào được tạo ra. Ví dụ cụ thể : mylist = ["C", "A", "B"] Sự khác biệt giữa sorted(list) vs list.sort() trong pythonMặc dù chúng ta đều sử dụng sorted(list) lẫn list.sort() để sắp xếp phần tử trong list theo thứ tự tăng dần, tuy nhiên hai phương pháp này có điểm khác biệt cực kỳ lớn đó là :
Cũng cần phải lưu ý thêm nữa, vốn dĩ khái niệm Tóm lại, bạn dùng hàm sorted() khi cần tạo ra một list mới. Ngược lại trong trường hợp không cần tạo một list mới, thì bạn sẽ dùng phương thức sort() để xắp xếp phần tử trong list python. Sau đây chúng ta sẽ so sánh list.sort() với sorted(list) trong python bằng các ví dụ cụ thể nhé: Sắp xếp một list có phần tử là số:
Sắp xếp một list có phần tử là chữ:
Sắp xếp phần tử trong list python theo thứ tự giảm dầnTheo mặc định thì hàm sorted() hay phương thức sort() sẽ sắp xếp list theo thứ tự tăng dần. Do đó nếu bạn muốn sắp xếp phần tử trong list python theo thứ tự tăng dần, thì bạn viết hàm và phương thức theo mặc định như Kiyoshi đã hướng dẫn ở phần trên. Ngược lại nếu bạn muốn sắp xếp phần tử trong list python theo thứ tự giảm dần, hãy chỉ định
thêm đối số
Sự khác biệt ở đây là chúng ta cần chỉ định giá trị của mylist = ["C", "A", "B"] Hãy thử một ví dụ khác phức tạp hơn: colorlist = ["Blue", "Red", "Green", "White", "Black"] Sắp xếp phần tử trong list python chứa các phần tử có kiểu dữ liệu khác nhauỞ phần trên, chúng ta đã học cách sắp xếp các phần tử trong list python, nếu list đó chỉ gồm toàn các phần tử giống nhau, như toàn là số, hoặc chuỗi ký tự rồi. Vậy khi kiểu dữ liệu của các phần tử trong list khác nhau, chúng ta cần làm thế nào? Câu trả lời ở đây là, nếu các phần tử trong list khác kiểu dữ liệu nhưng vẫn so sánh được, thì chúng ta có thể sắp xếp list như bình thường với hàm sorted() hoặc phương thức sort().
Ví dụ như bạn muốn sắp xếp
Nhưng nếu bạn muốn sắp xếp một list gồm các phần tử có kiểu dữ liệu khác nhau và chúng cũng không thể so sánh với nhau, ví dụ như chữ số và số chẳng hạn, thì nếu bạn dùng hàm sorted() thì lỗi mylist = ["80", 75, 45, "68"] Kết quả trả về lỗi: Traceback (most recent call last): Sắp xếp phần tử trong list với sorted key pythonỞ phần trên chúng ta đã học cách sắp xếp phần tử bằng cách sử dụng trực tiếp giá trị của các phần tử trong list. Ngoài cách này, chúng ta cũng có thể dùng giá trị của các phần tử này như là một đối số cho một hàm hoặc phương thức thứ ba, sau đó lấy giá trị thu về để tiến hành sắp xếp phần tử. Cách làm này đặc biệt hữu dụng khi bạn muốn quyết định cách sắp xếp list của mình không dựa theo giá trị của phần tử, mà dựa vào độ dài của chuỗi ký tự tạo nên phần tử , giá trị tuyệt đối của phần tử v.v… Để chỉ định hàm hoặc phương thức để biến đổi giá trị trong list trước khi đem đi sắp xếp, chúng ta sử dụng tới tham số sorted key python trong hàm sorted() với cú pháp như sau:
Trong đó, chúng ta có thể chỉ định các hàm hoặc phương thức sau dấu bằng như hàm abs(), hàm len(), hoặc phương thức upper() chẳng hạn v.v… Hãy cùng xem các ví dụ cụ thể dưới đây: Sắp xếp phần tử trong list python theo độ dài của chuỗi ký tự tạo thành phần tử trong chuỗiChúng ta sẽ chỉ định tên hàm sử dụng là mylist = ["apple", "pen", "desk", "banana"] Sắp xếp phần tử trong list python theo giá trị tuyệt đối của phần tử trong chuỗiChúng ta cần chỉ định tên hàm sử dụng là mylist = [5, -4, -7, 6] Sắp xếp phần tử trong list python theo giá trị được chuyển thành chữ thường của phần tử trong chuỗiChúng ta cần chỉ định tên phương thức sử dụng là Bạn có thể tham khảo thêm về hàm len trong bài viết Phương thức Lower() trong Python. Ví dụ: animallist = ["Cat", "monkey", "bear", "Sheep", "cow"] Ngoài ra, bạn cũng có thể sử dụng hầu hết các phương thức xử lý chuỗi để chỉ định cho key. Tham khảo các phương thức này tại chuyên đề Chuỗi string trong python. Nhược điểm của cách sắp xếp dùng hàm sorted() hoặc phương thức sort() trong pythonMặc dù hai cách này rất dễ sử dụng và có thể sắp xếp đúng ở hầu hết trường hợp, tuy nhiên trong một số trường hợp thì hàm sorted() hoặc phương thức sort() cũng chưa thể đưa ra kết quả sắp xếp tự nhiên nhất, giống như ví dụ dưới đây: a = ['2 ft 7 in', '1 ft 5 in', '10 ft 2 in', '2 ft 11 in', '7 ft 6 in'] Kết quả chúng ta muốn đó là: ['1 ft 5 in', '2 ft 7 in', '2 ft 11 in', '7 ft 6 in', '10 ft 2 in'] Tuy nhiên như ví dụ trên, hàm sorted() chưa đưa ra được kết quả như chúng ta mong muốn. Trong trường hợp này, chúng ta cần phải sử dụng một hàm số khác vốn không được tích hợp sẵn khi bạn cài đặt python, đó là
Tổng kết và thực hànhTrên đây Kiyoshi đã hướng dẫn bạn cách sắp xếp phần tử trong list python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé. Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo. Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam! HOME>> python cơ bản - lập trình python cho người mới bắt đầu>>10. list trong python Bài sauChèn phần tử vào list python (insert, slice) Bài tiếpHàm list() trong python và cách tạo list từ iterable |