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

Python – เรียงลำดับสตริงตามจำนวนตัวอักษรที่ไม่ซ้ำ

เมื่อต้องการเรียงลำดับลิสต์สตริงตามจำนวนตัวอักษรที่ไม่ซ้ำกัน (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)