Làm thế nào để bạn sắp xếp một bộ so sánh trong python?

Trong hướng dẫn này, chúng ta sẽ biết cách sắp xếp danh sách bằng hàm so sánh tùy chỉnh trong Python. Trong Python, có các hàm dựng sẵn để sắp xếp danh sách. Tuy nhiên, đôi khi chúng ta cần sắp xếp danh sách bằng mã so sánh tùy chỉnh. Vì vậy, nếu bạn muốn biết cách sắp xếp danh sách dựa trên chức năng so sánh của riêng mình thì bạn đang ở đúng nơi

Sắp xếp trong Python bằng hàm sorted()

Vì Python là ngôn ngữ lập trình nâng cao nên việc sắp xếp danh sách rất dễ dàng bằng các hàm có sẵn. Hàm sorted() sắp xếp bất kỳ danh sách nào theo thứ tự tăng dần theo mặc định. Nó sắp xếp các số theo thứ tự số và chuỗi theo thứ tự bảng chữ cái. Và luôn trả về một danh sách chứa các phần tử theo cách được sắp xếp. Nó không sửa đổi bất kỳ giá trị nào được lưu trữ trong danh sách ban đầu

Sử dụng hàm sorted(), chúng ta có thể sắp xếp một dãy theo thứ tự tăng dần hoặc giảm dần. Chúng ta cũng có thể sử dụng hàm so sánh tùy chỉnh của riêng mình để sắp xếp danh sách thay vì các hàm mặc định được sử dụng bởi hàm sorted(). Cú pháp của hàm sorted() là –

đã sắp xếp (list_name có thể lặp lại, khóa = so sánh_function, đảo ngược = true_or_false);

Hàm sorted() có ba tham số trong đó hai tham số cuối cùng là tùy chọn

  • Có thể lặp lại - Nó chứa chuỗi sẽ được sắp xếp
  • Khóa (tùy chọn) – Một chức năng được coi là khóa hoặc cơ sở để so sánh sắp xếp. Chức năng so sánh này được xác định bởi người dùng
  • Đảo ngược (tùy chọn) – Nếu được đặt đúng, thì chuỗi được sắp xếp sẽ theo thứ tự đảo ngược i. e. Thứ tự giảm dần. Theo mặc định, nó là false có nghĩa là danh sách được sắp xếp theo thứ tự tăng dần

Hàm so sánh để sắp xếp tùy chỉnh trong Python

Hàm sorted() có một tham số tùy chọn được gọi là 'key', lấy hàm so sánh làm giá trị của nó và sắp xếp danh sách trên cơ sở của khóa này. Nếu bạn muốn logic so sánh của riêng mình để sắp xếp một chuỗi, bạn phải sử dụng tham số này. Hàm chính này biến đổi từng phần tử theo kết quả của hàm so sánh trước khi sắp xếp. Nó nhận giá trị và trả về một giá trị sau đó được sử dụng để sắp xếp

Hãy xem một ví dụ về sắp xếp tên của các loại trái cây về cơ bản là các chuỗi. Nếu bạn chuyển danh sách này cho hàm sorted(), nó sẽ sắp xếp các chuỗi theo thứ tự bảng chữ cái. Tuy nhiên, nếu bạn muốn sắp xếp dựa trên số lượng nguyên âm, phụ âm, v.v., bạn phải chỉ định một hàm so sánh tùy chỉnh trong tham số 'key'

Chức năng so sánh để sắp xếp trên cơ sở số lượng nguyên âm

Nếu bạn muốn sắp xếp một danh sách chứa các chuỗi dựa trên số nguyên âm có trong các thành phần chuỗi, thì bạn phải xác định hàm so sánh tùy chỉnh của riêng mình

def vowels(fruit):
  vowels=('a', 'e', 'i', 'o', 'u')
  vowel_count=0
  for i in fruit:
    if i in vowels:
      vowel_count=vowel_count+1
  return vowel_count

Hàm so sánh các nguyên âm() hoạt động như một khóa hoặc cơ sở để so sánh. Nó đếm số nguyên âm trong chuỗi. Sau đó, các giá trị này được sắp xếp theo thứ tự và do đó các chuỗi tương ứng được sắp xếp

Chức năng so sánh để sắp xếp trên cơ sở số lượng phụ âm

Ngoài ra, bạn có thể so sánh một danh sách chứa các chuỗi dựa trên số lượng phụ âm có trong các phần tử. Hàm so sánh có thể sắp xếp trên cơ sở số lượng phụ âm là –

def consonants(fruit):
        vowels=('a', 'e', 'i', 'o', 'u')
        consonant_count=0
        for i in fruit:
                if i not in vowels:
                        consonant_count=consonant_count+1
        return consonant_count

Hàm so sánh tùy chỉnh phụ âm () đóng vai trò là cơ sở để so sánh. Nó đếm số phụ âm trong chuỗi và trả về nó. Việc sắp xếp được thực hiện trên cơ sở giá trị trả về. Sau đó, các chuỗi tương ứng được đặt theo thứ tự được sắp xếp đó

Chương trình sắp xếp danh sách bằng hàm so sánh tùy chỉnh trong Python

Bây giờ, hãy xem một chương trình Python sắp xếp danh sách chứa tên các loại trái cây trên cơ sở số lượng nguyên âm và phụ âm

def vowels(fruit):
  vowels=('a', 'e', 'i', 'o', 'u')
  vowel_count=0
  for i in fruit:
    if i in vowels:
      vowel_count=vowel_count+1
  return vowel_count
def consonants(fruit):
        vowels=('a', 'e', 'i', 'o', 'u')
        consonant_count=0
        for i in fruit:
                if i not in vowels:
                        consonant_count=consonant_count+1
        return consonant_count
fruits=['apple','banana','cherry','grapefruit','plum','kiwi','mango']

print("ORIGINAL LIST -->")
print(fruits)
print("SORTED LIST - NUMBER OF VOWELS -->")
print(sorted(fruits,key=vowels))
print("SORTED LIST - NUMBER OF CONSONANTS -->")
print(sorted(fruits,key=consonants))

Chương trình này chứa hai hàm so sánh hoạt động như một chìa khóa để sắp xếp trên cơ sở số lượng nguyên âm và phụ âm. Danh sách 'trái cây' được khai báo có chứa tên của các loại trái cây. Hàm sorted() dùng để sắp xếp và truyền tham số ‘key’

đầu ra chương trình

Chương trình Python trên in danh sách theo thứ tự đã sắp xếp. Đầu tiên, nó in danh sách sau khi sắp xếp trên cơ sở số lượng nguyên âm. Sau đó, cuối cùng, nó sắp xếp dựa trên số lượng phụ âm. Đầu ra của chương trình như sau

Bộ so sánh trong chương trình Python là gì?

Bộ so sánh được dùng để lấy hai giá trị và so sánh chúng với nhau . Nó so sánh và tạo ra các giá trị boolean. Nó thường được sử dụng với các giá trị số, nhưng nó cũng có thể được sử dụng với các loại dữ liệu khác.

Có bộ so sánh nào trong Python không?

Các hàm so sánh không được dùng trong Python ; . nếu điều kiện. trở lại Đúng khác. return Sai phải là điều kiện trả về.