Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python Sort(): Hướng dẫn cách sử dụng

Phương thức Python sort() sắp xếp danh sách theo thứ tự tăng dần theo giá trị. Bạn có thể sắp xếp giảm dần bằng tham số reverse. sort() tùy chọn chấp nhận hàm cho phép chỉ định sắp xếp tùy chỉnh.

Tất cả coder cuối cùng gặp tình huống phải sắp xếp mục hoặc dữ liệu. Sắp xếp quan trọng trong nhiều ngữ cảnh. Bạn có thể cần sắp xếp tên người dùng theo thứ tự bảng chữ cái ngược hoặc danh sách người nhận email theo thứ tự bảng chữ cái.

Python có hàm tích hợp giúp dev sắp xếp danh sách: sort(). Hàm sắp xếp cung cấp nhiều tính năng tùy chỉnh thứ tự danh sách để bạn sắp xếp danh sách Python tốt nhất cho chương trình.

Trong hướng dẫn này, chúng ta bao quát cơ bản sắp xếp trong Python và thảo luận cách dùng hàm sort().

Python Sort List

Hàm sort() sắp xếp danh sách theo thứ tự tăng dần. Bạn có thể dùng sắp xếp tùy chỉnh hoặc giảm dần bằng tham số thêm. Các tham số này tùy chọn.

Xem cú pháp phương thức sort():

sort(reverse=True, key=function)

Phương thức sort() chấp nhận hai đối số tùy chọn:

  • reverse: Chỉ định True sắp xếp danh sách theo thứ tự giảm dần.
  • key: Hàm sắp xếp danh sách.

Python Sort List: Thứ tự tăng dần (Ascending Order)

Dưới đây, định nghĩa mảng Python. Mảng chứa danh sách số. Các số không theo thứ tự cụ thể. Để sắp xếp mảng, dùng hàm sort():

data = [9, 12, 8, 4, 6]
data.sort()
print(data)

Mã trả về:

[4, 6, 8, 9, 12]

Dòng đầu, khai báo danh sách số xuất hiện ngẫu nhiên.

Tiếp theo, dùng sort() không đối số. Điều này sắp xếp danh sách gốc theo thứ tự bảng chữ cái tăng dần. Dòng cuối, mã in dữ liệu đã sắp xếp.

Hàm sort() thay đổi mảng gốc.

Sắp xếp List Python: Thứ tự giảm dần (Descending Order)

Tham số reverse sắp xếp danh sách giảm dần khi đặt True. Mặc định, reverse là False, nghĩa là danh sách cuối cùng tăng dần.

Dưới đây, danh sách tên học sinh. Muốn sắp xếp theo thứ tự bảng chữ cái ngược. Dùng sort() với tham số reverse:

students = ['Hannah', 'Arnold', 'Paul', 'Chris', 'Kathy']
students.sort(reverse=True)
print(students)

Mã trả về tên học sinh theo thứ tự bảng chữ cái ngược:

['Paul', 'Kathy', 'Hannah', 'Chris', 'Arnold']

Sort Python Keys (Sắp xếp bằng khóa tùy chỉnh)

Chúng ta có thể sắp xếp danh sách dùng phương pháp riêng. Ví dụ, sắp xếp mảng theo độ dài chuỗi trong mảng.

Sắp xếp theo độ dài chuỗi (Sort By String Length)

Dùng tham số key, định nghĩa sắp xếp tùy chỉnh. Ví dụ key sắp xếp danh sách theo độ dài chuỗi thành phần:

students = ['Sophie', 'Alexander', 'Paul', 'Chris', 'Ann']
sortedStudents = sorted(students, key=len)
print(sortedStudents)

Mã trả về:

['Ann', 'Paul', 'Chris', 'Sophie', 'Alexander']

Ở đây, mã sắp xếp danh sách theo độ dài chuỗi. Ann, tên ba ký tự, đứng đầu, và Alexander, chín ký tự, đứng cuối.

Trong ví dụ, báo mã sắp xếp bằng len(), hàm tích hợp Python cho độ dài đối tượng. Mỗi chuỗi trong mảng chạy qua len(). Sau đó, danh sách cuối được sắp xếp.

Tương tự, có thể dùng str.upper sắp xếp theo thứ tự bảng chữ cái bằng chữ hoa trong chuỗi. Hoặc dùng hàm Python khác hoàn toàn để sắp xếp.

Sắp xếp theo nội dung JSON (Sort by JSON Contents)

Khóa cũng cho phép định nghĩa hàm riêng chỉ định cách sắp xếp. Ví dụ sắp xếp ngược mảng JSON theo giá trị cụ thể. Trong trường hợp này, điểm kiểm tra học sinh:

def sortFunction(value):
    return value["test_score"]

students = [
    { "name": "Sophie", "test_score": 75 },
    { "name": "Ann", "test_score": 67 },
    { "name": "Chris", "test_score": 73 }
]

sortedStudents = sorted(students, key=sortFunction)
print(sortedStudents)

Mã trả về:

[{'name': 'Ann', 'test_score': 67}, {'name': 'Chris', 'test_score': 73}, {'name': 'Sophie', 'test_score': 75}]

Mã sắp xếp học sinh theo điểm kiểm tra.

Thứ nhất, chương trình định nghĩa hàm sortFunction sắp xếp mảng JSON dựa trên giá trị test_score khi gọi. Sau đó khai báo mảng JSON students với tên và điểm.

Tiếp theo, sắp xếp học sinh dùng hàm tùy chỉnh gọi sortFunction làm key. Dòng cuối, mã in danh sách đã sắp xếp.

Kết luận

Trong hướng dẫn, chúng ta phân tích cách dùng sort() Python sắp xếp danh sách. Thảo luận dùng sort() trên các kiểu dữ liệu khác nhau và tham số reverse đảo ngược thứ tự. Cũng bao quát cách dùng keys thực hiện sắp xếp chi tiết hơn.

Để học thêm coding Python, đọc hướng dẫn hoàn chỉnh how to learn Python.