Sắp xếp tùy chỉnh trong Python là gì?

Trong hướng dẫn này, bạn sẽ học cách sử dụng Python để sắp xếp danh sách bằng phương thức 

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
1. Khả năng làm việc với các danh sách là một kỹ năng thiết yếu trong Python, với mức độ phổ biến của chúng. Vì danh sách là cấu trúc dữ liệu có thứ tự và có thể thay đổi nên chúng ta có thể sửa đổi thứ tự của chúng. Phương thức 
# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
2 cho phép bạn thực hiện chính xác điều này. Phương pháp này là một phương pháp có giá trị cho phép bạn sắp xếp theo nhiều cách tùy chỉnh

Đến cuối hướng dẫn này, bạn sẽ học được

  • Cách sử dụng phương thức sắp xếp Python để sắp xếp danh sách
  • Cách sắp xếp theo thứ tự tăng dần, giảm dần và tùy chỉnh
  • Cách sắp xếp danh sách danh sách, danh sách bộ và danh sách từ điển

Bắt đầu nào

Mục lục

  • Danh sách Python sort() Cú pháp phương thức
  • Sắp xếp danh sách Python theo thứ tự tăng dần
  • Sắp xếp danh sách Python theo thứ tự giảm dần
  • Sắp xếp danh sách Python theo thứ tự tùy chỉnh bằng khóa
  • Sắp xếp danh sách Python theo thứ tự tùy chỉnh với Lambda
  • Sắp xếp danh sách danh sách Python
  • Sắp xếp một danh sách Python của Tuples
  • Sắp xếp danh sách từ điển Python
  • Phần kết luận
  • Tài nguyên bổ sung

Danh sách Python sort() Cú pháp phương thức

Phương thức

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
1 của Python sắp xếp các phần tử của danh sách theo một thứ tự nhất định, bao gồm cả thứ tự tăng dần hoặc giảm dần. Phương pháp này hoạt động tại chỗ, nghĩa là danh sách đã thay đổi không cần phải gán lại để sửa đổi danh sách

Hãy xem xét các tham số của hàm

# The Parameters of the .sort Method
list.sort(
	key=None,
	reverse=False)

Như bạn có thể thấy trong khối ở trên, phương thức có hai tham số

  1. # Sorting a List in Ascending Order
    name = ['d', 'a', 't', 'a', 'g', 'y']
    name.sort()
    print(name)
    
    # Returns:
    # ['a', 'a', 'd', 'g', 't', 'y']
    4 chỉ định chức năng của một đối số được sử dụng để so sánh với một phần tử danh sách khác. Theo mặc định, tham số được đặt thành
    # Sorting a List in Ascending Order
    name = ['d', 'a', 't', 'a', 'g', 'y']
    name.sort()
    print(name)
    
    # Returns:
    # ['a', 'a', 'd', 'g', 't', 'y']
    5, có nghĩa là các mục trong danh sách được sắp xếp trực tiếp mà không cần tính giá trị khóa riêng
  2. # Sorting a List in Ascending Order
    name = ['d', 'a', 't', 'a', 'g', 'y']
    name.sort()
    print(name)
    
    # Returns:
    # ['a', 'a', 'd', 'g', 't', 'y']
    6 chỉ định thứ tự sắp xếp các giá trị. Theo mặc định, đối số được đặt thành 
    # Sorting a List in Ascending Order
    name = ['d', 'a', 't', 'a', 'g', 'y']
    name.sort()
    print(name)
    
    # Returns:
    # ['a', 'a', 'd', 'g', 't', 'y']
    7, nghĩa là dữ liệu được sắp xếp theo thứ tự tăng dần

Phương thức 

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
8 không trả về bất cứ thứ gì, mặc dù nó trực tiếp sửa đổi danh sách ban đầu. Nếu đây là hành vi mà bạn hy vọng hoặc mong đợi, thì hàm 
# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
9 sẽ phù hợp hơn cho việc này

Trong các phần sau, bạn sẽ tìm hiểu cách sử dụng phương thức 

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
8 để sắp xếp các giá trị trong danh sách. Trước tiên, bạn sẽ học cách sắp xếp danh sách theo thứ tự tăng dần

Sắp xếp danh sách Python theo thứ tự tăng dần

Trong phần này, bạn sẽ tìm hiểu cách sắp xếp danh sách theo thứ tự tăng dần bằng phương pháp 

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
8. Theo mặc định, phương thức này sẽ sử dụng đối số 
# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
22, nghĩa là các mục sẽ được sắp xếp theo thứ tự tăng dần theo mặc định. Vì vậy, chúng ta có thể bỏ qua việc nhập thông số này

Hãy cùng xem một ví dụ về cách sắp xếp danh sách theo thứ tự tăng dần trong Python

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']

Chúng ta có thể thấy rằng các giá trị được sắp xếp theo thứ tự tăng dần. Một điều quan trọng cần lưu ý là các giá trị được so sánh trực tiếp

Điều này có nghĩa là các mục trong danh sách được xử lý như hiện tại - chữ in hoa sẽ tuân theo một thứ tự sắp xếp khác với chữ thường. Trong phần thứ tự sắp xếp tùy chỉnh, bạn sẽ tìm hiểu cách ghi đè hành vi này

Trong phần sau, bạn sẽ tìm hiểu cách sắp xếp danh sách theo thứ tự giảm dần bằng phương pháp 

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
8 của Python

Sắp xếp danh sách Python theo thứ tự giảm dần

Tương tự như sắp xếp danh sách theo thứ tự tăng dần, chúng ta có thể sắp xếp danh sách Python theo thứ tự giảm dần bằng phương thức 

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
8 . Mặc dù theo mặc định, hàm sẽ sắp xếp danh sách theo thứ tự tăng dần, nhưng chúng ta có thể sửa đổi hành vi này bằng cách thay đổi tham số 
# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
6 thành 
# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
26

Hãy xem cách chúng ta có thể sắp xếp danh sách theo thứ tự đảo ngược bằng phương pháp 

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
2

Tương tự như ghi chú trong phần trước, chữ in hoa sẽ được xử lý khác. Tuy nhiên, trong phần sau, bạn sẽ tìm hiểu cách sắp xếp danh sách Python theo thứ tự tùy chỉnh

Sắp xếp danh sách Python theo thứ tự tùy chỉnh bằng khóa

Phương thức 

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
8 của Python cho phép bạn tinh chỉnh thêm thứ tự sắp xếp các mục bằng cách sử dụng tham số 
# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
4. Hãy xem một ví dụ mà tôi đã đề cập trong hai phần trước. chữ in hoa được xử lý như thế nào

Hãy thay đổi một chữ cái thành chữ in hoa trong danh sách và xem điều này thay đổi thứ tự sắp xếp như thế nào

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
2

Chúng ta có thể thấy rằng chữ hoa 

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
20 được sắp xếp trước các chữ cái viết thường. Điều này là do các giá trị được sắp xếp theo giá trị ASCII của chúng, trong đó các chữ in hoa có giá trị thấp hơn các phiên bản chữ thường của chúng

Đây là lúc tham số 

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
4 phát huy tác dụng. Chúng ta có thể truyền vào một khóa chấp nhận chức năng để thay đổi thứ tự sắp xếp. Ví dụ: nếu chúng ta muốn so sánh tất cả các chữ cái theo trường hợp của chúng, chúng ta có thể chuyển vào
# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
22 có thể gọi

Hãy xem nó trông như thế nào

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
6

Chúng ta có thể thực hiện điều này hơn nữa bằng cách chuyển vào một chức năng tùy chỉnh. Giả sử chúng ta muốn sắp xếp một danh sách các chuỗi theo chữ cái cuối cùng của chúng, trước tiên chúng ta có thể tạo một hàm trả về chữ cái cuối cùng của mỗi mục được truyền vào nó

Hãy xem một ví dụ về cách chúng ta có thể làm điều này

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
7

Trong phần tiếp theo, bạn sẽ tìm hiểu cách sử dụng hàm lambda ẩn danh để xác định thứ tự sắp xếp tùy chỉnh

Sắp xếp danh sách Python theo thứ tự tùy chỉnh với Lambda

Trong nhiều trường hợp, bạn sẽ không sử dụng lại chức năng sắp xếp tùy chỉnh. Do đó, nên sử dụng hàm lambda ẩn danh. Hãy xem cách chúng ta có thể tạo lại phương pháp sắp xếp ở trên bằng hàm lambda

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
8

Chúng ta có thể thấy rằng điều này có một số lợi ích chính

  1. Nó làm giảm số lượng mã chúng ta cần viết
  2. Chúng tôi làm rõ hơn chức năng sắp xếp của chúng tôi bằng cách không cần chuyển sang dòng mã khác

Trong các phần sau, bạn sẽ học cách sắp xếp các cấu trúc danh sách phổ biến khác nhau, chẳng hạn như danh sách các danh sách, danh sách các bộ và danh sách các từ điển

Sắp xếp danh sách danh sách Python

Trong phần này, bạn sẽ tìm hiểu cách sắp xếp một danh sách các danh sách trong Python bằng phương thức 

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
8. Trong ví dụ này, chúng tôi sẽ sắp xếp danh sách các danh sách theo độ dài của chúng, theo thứ tự tăng dần (từ ngắn nhất đến dài nhất)

Một lần nữa, chúng ta có thể làm điều này bằng cách sử dụng tham số 

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
4 và chuyển vào 
# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
25 có thể gọi. Điều này sẽ sắp xếp theo giá trị được trả về của hàm 
# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
26, theo thứ tự tăng dần

# The Parameters of the .sort Method
list.sort(
	key=None,
	reverse=False)
3

Ở đây chúng ta có thể thấy rằng mỗi danh sách được sắp xếp theo độ dài của nó, do đó danh sách con ngắn hơn được sắp xếp trước danh sách dài hơn

Sắp xếp một danh sách Python của Tuples

Sắp xếp một danh sách các bộ trong Python giống như cách bạn sắp xếp một danh sách các danh sách. Vì điều này, chúng ta hãy xem một ví dụ cho biết cách sắp xếp bằng một phím khác

Ví dụ: hãy tưởng tượng chúng ta có một bộ chứa

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
27, chúng ta có thể sắp xếp danh sách các quốc gia theo thứ tự có nhiều huy chương nhất đến ít nhất. Hãy xem làm thế nào chúng ta có thể làm điều này

# The Parameters of the .sort Method
list.sort(
	key=None,
	reverse=False)
5

Chúng ta có thể thấy rằng chúng ta đã sắp xếp các bộ dữ liệu theo số lượng huy chương theo thứ tự giảm dần. Chúng tôi đã làm điều này bằng cách sử dụng hàm lambda và truy cập mục chỉ mục đầu tiên

Sắp xếp danh sách từ điển Python

Trong phần cuối cùng này, chúng ta sẽ khám phá cách sắp xếp danh sách từ điển. Vì từ điển được tạo thành từ 

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
28 cặp nên không thể truy cập các mục theo chỉ mục của chúng. Hãy tưởng tượng chúng ta có từ điển sau

# The Parameters of the .sort Method
list.sort(
	key=None,
	reverse=False)
7

Giả sử chúng tôi muốn sắp xếp danh sách những người theo độ tuổi của họ, theo thứ tự tăng dần. Để làm được điều này, chúng ta cần truy cập vào giá trị của khóa 

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
29 . Chúng ta có thể làm điều này bằng cách sử dụng phương thức 
# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
60 

Chúng ta có thể chuyển phương thức 

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
60 vào hàm lambda và truy cập khóa 
# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
62

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
0

Phần kết luận

Trong bài đăng này, bạn đã học cách sử dụng Python để sắp xếp danh sách bằng phương pháp 

# Sorting a List in Ascending Order
name = ['d', 'a', 't', 'a', 'g', 'y']
name.sort()
print(name)

# Returns:
# ['a', 'a', 'd', 'g', 't', 'y']
8. Bạn đã học cách cú pháp của phương thức sắp xếp trong Python hoạt động. Sau đó, bạn đã học cách sử dụng phương thức để sắp xếp các mục trong danh sách Python theo thứ tự tăng dần, giảm dần và tùy chỉnh. Sau đó, bạn đã học cách sắp xếp danh sách danh sách, danh sách bộ và danh sách từ điển

Sắp xếp tùy chỉnh là gì?

Khi danh sách giá trị được hiển thị trong trang ứng dụng, người dùng có thể sắp xếp danh sách bằng cách nhấp vào tiêu đề cột . Thứ tự sắp xếp của các hàng sẽ được xác định bởi thứ tự sắp xếp của các giá trị trong cột đã chọn.

Phương pháp sắp xếp trong Python là gì?

Phương thức sort() là một phương thức Python tích hợp sẵn, theo mặc định, sắp xếp danh sách theo thứ tự tăng dần . Tuy nhiên, bạn có thể sửa đổi thứ tự từ tăng dần sang giảm dần bằng cách chỉ định tiêu chí sắp xếp.

Sự khác biệt sort() và sorted() trong Python là gì?

Sự khác biệt chính giữa sắp xếp và sắp xếp trong Python là hàm sắp xếp không trả về kết quả gì và thực hiện các thay đổi đối với chuỗi ban đầu, trong khi hàm sorted () tạo ra một loại chuỗi mới chứa một . .