Hàm List sort() trong Python

Bài này chúng ta sẽ tìm hiểu phương thức list sort() trong Python, phương thức này dùng để sắp xếp các phần tử của một List theo hướng tăng dần hoặc giảm dần.

1. Cú pháp List sort()

Sau đây là cú pháp của phương thức này.

list.sort(key=..., reverse=...)

Trong đó:

  • reverse là thông số quyết định sắp xếp tăng hay giảm, nếu TRUE là tăng dần và FALSE là giảm dần.
  • key đóng vai trò là function dùng để so sánh sắp xếp

Mặc định thì phương thức sort sẽ không có tham số truyền vào.

Giá trị trả về: Phương thức này không trả về một giá trị nào cả, nó chỉ thay đổi thứ tự sắp xếp cho List sử dụng nó.

2. Ví dụ list sort đơn giản

Sau đây là một vài ví dụ về các trường hợp thường gặp nhất. Đầu tiên là một ví dụ khá đơn giản như sau:

# vowels list
vowels = ['e', 'a', 'u', 'o', 'i']

# sort the vowels
vowels.sort()

# print vowels
print('Sorted list:', vowels)

Vì không truyền tham số vào nên mặc định nó sẽ sắp xếp tăng dần, kết quả sẽ như sau:

Sorted list: ['a', 'e', 'i', 'o', 'u']

Nếu ban muốn sắp xếp giảm dần thì thêm tham số reverse=True.

# vowels list
vowels = ['e', 'a', 'u', 'o', 'i']

# sort the vowels
vowels.sort(reverse=True)

# print vowels
print('Sorted list (in Descending):', vowels)

Kết quả:

Sorted list (in Descending): ['u', 'o', 'i', 'e', 'a']

3. Ví dụ sử dụng key function

Giả sử mỗi phần tử của list có kiểu dữ liệu phức tạp như Tuple, List, Set thì bạn cần phải có một thông số để so sánh. Ví dụ mình có list như sau:

random = [(2, 2), (3, 4), (4, 1), (1, 3)]

Lúc này ta phải sử dụng tham số key để định nghĩa một function mới, function này sẽ trả về phần tử muốn so sánh.

# take second element for sort
def takeSecond(elem):
    return elem[1]

# random list
random = [(2, 2), (3, 4), (4, 1), (1, 3)]

# sort list with key
random.sort(key=takeSecond)

# print list
print('Sorted list:', random)

Chạy lên kết quả sẽ như sau:

Sorted list: [(4, 1), (2, 2), (1, 3), (3, 4)]

Lời kết: Như vậy là mình đã giới thiệu xong cách sử dụng phương thức list.sort() trong Python, chúc bạn học tốt.

Nguồn: freetuts.net