เมื่อต้องการเรียงลำดับลิสต์สตริงตามความถี่ของตัวอักษรพิมพ์ใหญ่ (uppercase) สามารถใช้ฟังก์ชันช่วยที่มี list comprehension และ isupper() ได้
ตัวอย่าง
def higher_character_sort(sub):
return len([ele for ele in sub if ele.isupper()])
my_list = ["pyt", "is", "FUN", "to", "Learn"]
print("The list is:")
print(my_list)
my_list.sort(key=higher_character_sort)
print("The result is:")
print(my_list)
ผลลัพธ์
The list is: ['pyt', 'is', 'FUN', 'to', 'Learn'] The result is: ['pyt', 'is', 'to', 'Learn', 'FUN']
คำอธิบาย
กำหนดฟังก์ชัน
higher_character_sortนับจำนวนตัวอักษรพิมพ์ใหญ่ด้วยele.isupper()ใน list comprehension แล้วคืนค่าความยาวกำหนดลิสต์สตริงที่มีตัวพิมพ์ใหญ่ต่างกัน แสดงผล
ใช้
sort(key=higher_character_sort)เรียงจากน้อยไปมากตามจำนวนตัวพิมพ์ใหญ่จำนวนตัวพิมพ์ใหญ่: pyt=0, is=0, to=0, Learn=1 (L), FUN=3 -> เรียงได้ผลลัพธ์