Có nhiều lý do khiến bạn muốn sắp xếp danh sách trong các ứng dụng Python của mình.
Trong bài viết này, tôi sẽ chỉ cho bạn cách sắp xếp danh sách theo thứ tự tăng dần và giảm dần tùy thuộc vào những gì bạn cần làm.
cái gì là List
trong Python?
Danh sách là một loại dữ liệu trong Python nơi bạn có thể lưu trữ nhiều giá trị của các loại dữ liệu khác nhau (bao gồm cả danh sách lồng nhau).
Dưới đây là ví dụ về danh sách:
numList = [1, 2, 3, 4, 5]
stringList = ["banana", "orange", "apple"]
mixedList = [1, "banana", "orange", [5, 6]]
Bạn có thể truy cập các mục trong danh sách bằng cách sử dụng vị trí chỉ mục của chúng. Vị trí chỉ mục bắt đầu từ 0 trong danh sách:
stringList = ["banana", "orange", "apple"]
print(stringList[1])
# "orange"
Cách sắp xếp danh sách trong Python
Bạn có thể sắp xếp một danh sách trong Python bằng cách sử dụng sort()
phương pháp.
Các sort()
phương pháp cho phép bạn sắp xếp các mục trong một danh sách. Đây là cú pháp:
list.sort(reverse=True|False, key=sortFunction)
Phương thức chấp nhận hai đối số tùy chọn:
reverse
: sắp xếp danh sách theo thứ tự ngược lại (giảm dần) nếuTrue
hoặc theo thứ tự thông thường (tăng dần) nếuFalse
(theo mặc định)key
: một chức năng bạn cung cấp để mô tả phương pháp sắp xếp
Theo mặc định, bạn có thể sắp xếp các chuỗi và số theo thứ tự tăng dần mà không cần chuyển đối số cho phương thức này:
items = ["orange", "cashew", "banana"]
items.sort()
# ['banana', 'cashew', 'orange']
Ở trên, bạn có thể thấy rằng danh sách được sắp xếp có b đầu tiên (trong chuối), sau đó c (trong hạt điều), vì từ này đứng sau b, và cuối cùng, o (màu cam) sau này theo thứ tự bảng chữ cái.
Lưu ý rằng phương pháp này sửa đổi mảng ban đầu.
Đối với thứ tự giảm dần, bạn có thể chuyển đối số ngược lại:
items = [6, 8, 10, 5, 7, 2]
items.sort(reverse=True)
# [10, 8, 7, 6, 5, 2]
Bằng cách vượt qua True
đến reverse
đối số, bạn thấy những con số trong items
danh sách được sắp xếp ngược lại, đó là thứ tự giảm dần.
Cách chỉ định chức năng sắp xếp
Điều gì sẽ xảy ra nếu bạn thử điều này trên một danh sách từ điển? Hãy xem nào:
items = [{
'name': 'John',
'age': 40
}, {
'name': 'Mike',
'age': 45
}, {
'name': 'Jane',
'age': 33
}, {
'name': 'Asa',
'age': 42
}]
items.sort()
Bạn sẽ gặp lỗi vì từ điển không thể sắp xếp được. Đây là nơi bạn có thể chỉ định một tiêu chí sắp xếp bằng cách sử dụng key
tranh luận:
items = [
{
'name': 'John',
'age': 40
},
{
'name': 'Mike',
'age': 45
},
{
'name': 'Jane',
'age': 33
},
{
'name': 'Asa',
'age': 42
}
]
def sortFn(dict):
return dict['age']
items.sort(key=sortFn)
# [
# {'name': 'Jane', 'age': 33},
# {'name': 'John', 'age': 40},
# {'name': 'Asa', 'age': 42},
# {'name': 'Mike', 'age': 45}
# ]
Như bạn sẽ thấy trong khối mã ở trên, bằng cách sử dụng chức năng sắp xếp, chúng tôi đã xác định rằng quyết định sắp xếp phải dựa trên age
khóa trong mỗi từ điển.
Nếu reverse
đối số được thông qua như True
ở đây, các từ điển được sắp xếp sẽ theo thứ tự giảm dần.
Đây là một ví dụ khác sử dụng chức năng sắp xếp:
items = ["cow", "elephant", "duck"]
def sortFn(value):
return len(value)
items.sort(key=sortFn, reverse=True)
# ['elephant', 'duck', 'cow']
Trong trường hợp này, hàm sắp xếp trả về độ dài của các giá trị trong danh sách làm tiêu chí cho quá trình sắp xếp. Bằng cách vượt qua reverse
của True
bạn có thể thấy rằng danh sách được sắp xếp có chuỗi dài hơn trước, tiếp theo là chuỗi ngắn hơn.
kết thúc
Khi xây dựng ứng dụng, có nhiều kịch bản để sắp xếp danh sách. Nó có thể sắp xếp một danh sách các tập tin dựa trên một last_opened
Chìa khóa. Nó có thể là phân loại sản phẩm dựa trên một price
Chìa khóa. Như bạn có thể thấy, có rất nhiều tiêu chí mà bạn có thể sử dụng trong các ứng dụng thực tế.
Trong bài viết này, chúng ta đã biết cách sắp xếp danh sách trong Python theo thứ tự tăng dần và giảm dần bằng các phương pháp khác nhau.