Python - Danh sách sắp xếp
Sắp xếp danh sách theo kiểu chữ và số
Đối tượng danh sách có một
sort()
phương thức sẽ sắp xếp danh sách theo kiểu chữ và số, tăng dần, theo mặc định:
Thí dụ
Sắp xếp danh sách theo thứ tự bảng chữ cái:
thislist = ["orange", "mango", "kiwi",
"pineapple", "banana"]
thislist.sort()
print(thislist)
Thí dụ
Sắp xếp danh sách theo số:
thislist = [100, 50, 65, 82, 23]
thislist.sort()
print(thislist)
Sắp xếp giảm dần
Để sắp xếp giảm dần, hãy sử dụng đối số từ khóa reverse = True
:
Thí dụ
Sắp xếp danh sách giảm dần:
thislist = ["orange", "mango", "kiwi",
"pineapple", "banana"]
thislist.sort(reverse = True)
print(thislist)
Thí dụ
Sắp xếp danh sách giảm dần:
thislist = [100, 50, 65, 82, 23]
thislist.sort(reverse = True)
print(thislist)
Tùy chỉnh chức năng sắp xếp
Bạn cũng có thể tùy chỉnh chức năng của riêng mình bằng cách sử dụng đối số từ khóa .key =
function
Hàm sẽ trả về một số sẽ được sử dụng để sắp xếp danh sách (số thấp nhất đầu tiên):
Thí dụ
Sắp xếp danh sách dựa trên mức độ gần của số với 50:
def myfunc(n):
return abs(n - 50)
thislist = [100, 50, 65, 82, 23]
thislist.sort(key =
myfunc)
print(thislist)
Sắp xếp không phân biệt chữ hoa chữ thường
Theo mặc định, sort()
phương pháp này có phân biệt chữ hoa chữ thường, dẫn đến tất cả các chữ cái viết hoa được sắp xếp trước các chữ cái viết thường:
Thí dụ
Sắp xếp phân biệt chữ hoa chữ thường có thể cho kết quả không mong muốn:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort()
print(thislist)
May mắn thay, chúng ta có thể sử dụng các hàm tích hợp làm các hàm chính khi sắp xếp danh sách.
Vì vậy, nếu bạn muốn một hàm sắp xếp không phân biệt chữ hoa chữ thường, hãy sử dụng str.lower làm hàm chính:
Thí dụ
Thực hiện sắp xếp danh sách không phân biệt chữ hoa chữ thường:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort(key
= str.lower)
print(thislist)
Đảo ngược thứ tự
Điều gì sẽ xảy ra nếu bạn muốn đảo ngược thứ tự của một danh sách, bất kể bảng chữ cái là gì?
Phương reverse()
thức đảo ngược thứ tự sắp xếp hiện tại của các phần tử.
Thí dụ
Đảo ngược thứ tự của các mục trong danh sách:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.reverse()
print(thislist)