เมื่อจำเป็นต้องจัดเรียงสตริงตามความแตกต่างของตัวพิมพ์ จะมีการกำหนดเมธอดที่รับสตริงเป็นพารามิเตอร์ วิธีนี้ใช้ list comprehension และ 'isupper' และ 'islower' method ร่วมกับ list comprehension เพื่อรับความแตกต่างของ case ความแตกต่างให้ค่าที่จัดเรียง
ตัวอย่าง
ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน
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("The list is :") print(my_list) my_list.sort(key=get_diff) print("Sorted Strings by case difference :") print(my_list)
ผลลัพธ์
The list is : ['Abc', 'Python', 'best', ‘hello’, 'coders'] Sorted Strings by case difference : ['Abc', 'Python', 'best', 'coders', ‘hello’]
คำอธิบาย
-
มีการกำหนดเมธอดชื่อ 'get_diff' ซึ่งรับรายการสตริงเป็นพารามิเตอร์
-
แสดงรายการความเข้าใจและวิธีการ 'islower' และ 'isupper' ใช้เพื่อตรวจสอบว่าสตริงเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก
-
ค่าเหล่านี้ถูกเก็บไว้ในสองตัวแปรที่แตกต่างกัน
-
ความแตกต่างที่แน่นอนระหว่างสองตัวแปรนี้จะถูกส่งกลับเป็นผลลัพธ์
-
นอกเมธอด รายการถูกกำหนดและแสดงบนคอนโซล
-
รายการจะถูกจัดเรียงตามวิธีการที่กำหนดไว้ก่อนหน้านี้
-
นี่คือเอาต์พุตที่แสดงบนคอนโซล