เมื่อต้องการเรียงลำดับลิสต์สตริงตามความถี่ของตัวอักษร K ที่กำหนด สามารถใช้ sorted() และ lambda function ได้
ตัวอย่าง
my_list = ['Hi', 'Will', 'Jack', 'Python', 'Bill', 'Mills', 'goodwill']
print("The list is : ")
print(my_list)
my_list.sort()
print("The list after sorting is ")
print(my_list)
K = 'l'
print("The value of K is ")
print(K)
my_result = sorted(my_list, key=lambda ele: -ele.count(K))
print("The resultant list is : ")
print(my_result)
ผลลัพธ์
The list is : ['Hi', 'Will', 'Jack', 'Python', 'Bill', 'Mills', 'goodwill'] The list after sorting is ['Bill', 'Hi', 'Jack', 'Mills', 'Python', 'Will', 'goodwill'] The value of K is l The resultant list is : ['Bill', 'Mills', 'Will', 'goodwill', 'Hi', 'Jack', 'Python']
คำอธิบาย
กำหนดลิสต์สตริง แสดงผล แล้วเรียงลำดับปกติ (alphabetical) ก่อน
กำหนดตัวอักษร K ที่ต้องการนับความถี่
ใช้
sorted()พร้อมkey=lambda ele: -ele.count(K)เรียงจากความถี่มากไปน้อย (เครื่องหมายลบเพื่อเรียง descending)แสดงผลลัพธ์ที่เรียงตามความถี่ของ 'l'