Trong hướng dẫn này, ta xem cách sắp xếp danh sách chuỗi. Ta sẽ sắp xếp list chuỗi cho trước bằng phương thức sort và hàm sorted. Sau đó xem cách sắp xếp dựa trên tiêu chí khác nhau như độ dài, giá trị, v.v.
Xem cách sắp xếp list chuỗi dùng phương thức list.sort(). Phương thức sort sắp xếp tại chỗ (in-place). Nó sắp xếp trực tiếp list gốc. Xem mã.
Ví dụ
# Danh sách chuỗi strings = ['Python', 'C', 'Java', 'Javascript', 'React', 'Django', 'Spring'] # Sắp xếp list tăng dần strings.sort() # In list đã sắp xếp print(strings)
Kết quả
Nếu chạy chương trình trên, bạn sẽ nhận được kết quả sau.
['C', 'Django', 'Java', 'Javascript', 'Python', 'React', 'Spring']
Ta có thể sắp xếp list giảm dần với đối số reverse là True cho sort. Xem mã sắp xếp giảm dần.
Ví dụ
# Danh sách chuỗi strings = ['Python', 'C', 'Java', 'Javascript', 'React', 'Django', 'Spring'] # Sắp xếp list giảm dần strings.sort(reverse=True) # In list đã sắp xếp print(strings)
Kết quả
Nếu chạy chương trình trên, bạn sẽ nhận được kết quả sau.
['Spring', 'React', 'Python', 'Javascript', 'Java', 'Django', 'C']
Ta đã thấy sắp xếp list chuỗi dùng sort. Xem cách sắp xếp dùng hàm sorted tích hợp sẵn.
Ví dụ
# Danh sách chuỗi strings = ['Python', 'C', 'Java', 'Javascript', 'React', 'Django', 'Spring'] # Sắp xếp list tăng dần sorted_strings = sorted(strings) # In list đã sắp xếp print(sorted_strings)
Kết quả
Nếu chạy chương trình trên, bạn sẽ nhận được kết quả sau.
['C', 'Django', 'Java', 'Javascript', 'Python', 'React', 'Spring']
Ta cũng sắp xếp giảm dần dùng sorted truyền reverse=True làm đối số thứ hai. Xem mã.
Ví dụ
# Danh sách chuỗi strings = ['Python', 'C', 'Java', 'Javascript', 'React', 'Django', 'Spring'] # Sắp xếp list giảm dần sorted_strings = sorted(strings, reverse=True) # In list đã sắp xếp print(sorted_strings)
Kết quả
Nếu chạy chương trình trên, bạn sẽ nhận được kết quả sau.
['Spring', 'React', 'Python', 'Javascript', 'Java', 'Django', 'C']
Làm sao sắp xếp list chuỗi dựa trên độ dài? Ta sắp xếp theo độ dài dùng sort và sorted truyền key làm đối số. Xem cách sắp xếp theo độ dài.
Ví dụ
# Danh sách chuỗi strings = ['Python', 'C', 'Java', 'Javascript', 'React', 'Django', 'Spring'] # Sắp xếp list tăng dần - độ dài strings.sort(key=len) # In list đã sắp xếp print(strings)
Kết quả
Nếu chạy chương trình trên, bạn sẽ nhận được kết quả sau.
['C', 'Java', 'React', 'Python', 'Django', 'Spring', 'Javascript']
Ta có thể truyền bất kỳ hàm nào cho đối số key. Phương thức sort sẽ sắp xếp list dựa trên giá trị trả về của hàm cho key. Cái tương tự cũng hoạt động với hàm sorted.
Xem ví dụ dùng sorted sắp xếp list chuỗi dựa trên giá trị số.
Ví dụ
# Danh sách chuỗi strings = ['7', '34', '3', '23', '454', '12', '9'] # Sắp xếp list tăng dần - giá trị int sorted_strings = sorted(strings, key=int) # In list đã sắp xếp print(sorted_strings)
Kết quả
Nếu chạy chương trình trên, bạn sẽ nhận được kết quả sau.
['3', '7', '9', '12', '23', '34', '454']
Kết luận
Ta có thể truyền key và reverse cùng lúc cho sort và sorted để đạt mục đích. Thử và khám phá. Nếu có thắc mắc, hãy đề cập ở phần bình luận.