เมื่อต้องการเรียงลำดับลิสต์สตริงตามจำนวนตัวอักษรที่ไม่ซ้ำกัน (unique characters) สามารถใช้ฟังก์ชันช่วยที่มี set(), list() และ len() ได้
ตัวอย่าง
def my_sort_func(my_elem):
return len(list(set(my_elem)))
my_list = ['python', "Will", "Hi", "how", 'fun', 'learn', 'code']
print("The list is : ")
print(my_list)
my_list.sort(key=my_sort_func)
print("The result is :")
print(my_list)
ผลลัพธ์
The list is : ['python', 'Will', 'Hi', 'how', 'fun', 'learn', 'code'] The result is : ['Hi', 'Will', 'how', 'fun', 'code', 'learn', 'python']
คำอธิบาย
กำหนดฟังก์ชัน
my_sort_funcแปลงสตริงเป็นset()เพื่อเอาตัวอักษรไม่ซ้ำ แล้วแปลงเป็นลิสต์และนับความยาวกำหนดลิสต์สตริงและแสดงผล
ใช้
sort(key=my_sort_func)เรียงตามจำนวนตัวอักษรไม่ซ้ำจากน้อยไปมากแสดงผลลัพธ์ (Hi=2, Will=3, how=3, fun=3, code=4, learn=5, python=6)