Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python – เรียงลำดับลิสต์สตริงตามความถี่ของตัวอักษร K

เมื่อต้องการเรียงลำดับลิสต์สตริงตามความถี่ของตัวอักษร 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'