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

Python – Sắp xếp chuỗi theo độ chênh lệch chữ hoa/chữ thường

Giới thiệu

Khi cần sắp xếp các chuỗi dựa trên độ chênh lệch giữa số lượng chữ hoa và chữ thường, ta định nghĩa một hàm tính độ chênh lệch tuyệt đối, sau đó dùng làm key cho sort().

Ví dụ minh họa

def get_diff(my_string):
    lower_count = len([ele for ele in my_string if ele.islower()])
    upper_count = len([ele for ele in my_string if ele.isupper()])
    return abs(lower_count - upper_count)

my_list = ["Abc", "Python", "best", "hello", "coders"]
print("Danh sách ban đầu:")
print(my_list)

my_list.sort(key=get_diff)
print("Chuỗi đã sắp xếp theo độ chênh lệch case:")
print(my_list)

Kết quả đầu ra

Danh sách ban đầu:
['Abc', 'Python', 'best', 'hello', 'coders']
Chuỗi đã sắp xếp theo độ chênh lệch case:
['Abc', 'Python', 'best', 'coders', 'hello']

Giải thích

  • Hàm get_diff đếm số chữ thường và chữ hoa bằng list comprehension + islower()/isupper().
  • Trả về giá trị tuyệt đối của hiệu hai số đếm.
  • Dùng list.sort(key=get_diff) để sắp xếp theo key đó.
  • Chuỗi có độ chênh lệch nhỏ hơn sẽ đứng trước.