เมื่อต้องการเรียงลำดับลิสต์ตัวเลขตามจำนวนครั้งที่หลักตัวเลขเฉพาะ (digit) ปรากฏในแต่ละตัวเลข สามารถใช้ฟังก์ชันช่วยที่มี count() และ str() ได้
ตัวอย่าง
def sort_count_digits(elements):
return str(elements).count(str(my_key))
my_list = [4522, 2452, 1233, 2465]
print("The list is :")
print(my_list)
my_key = 2
print("The value of key is ")
print(my_key)
my_list.sort(key=sort_count_digits)
print("The result is :")
print(my_list)
ผลลัพธ์
The list is : [4522, 2452, 1233, 2465] The value of key is 2 The result is : [1233, 2465, 4522, 2452]
คำอธิบาย
กำหนดฟังก์ชัน
sort_count_digitsแปลงตัวเลขเป็นสตริง นับจำนวนครั้งของ my_key (แปลงเป็นสตริง) ด้วยcount()กำหนดลิสต์ตัวเลขและค่า key (หลักตัวเลขที่ต้องการนับ)
ใช้
sort(key=sort_count_digits)เรียงจากน้อยไปมากตามจำนวนครั้งที่ key ปรากฏจำนวน '2': 1233=0, 2465=1, 4522=2, 2452=2 (คงลำดับเดิมสำหรับค่าเท่ากัน)