เมื่อต้องการเรียงลำดับสมาชิกในลิสต์ตามผลรวมของหลักตัวเลข (digit sum) สามารถกำหนดฟังก์ชันช่วยที่ใช้ list comprehension และ sum() ได้
ตัวอย่าง
def sort_list_digit(my_list):
digits = [int(digit) for digit in str(my_list)]
return sum(digits)
my_list = [124, 20, 106, 35, 44]
print("The list is :")
print(my_list)
print("The result is :")
print(sorted(my_list, key=sort_list_digit))
ผลลัพธ์
The list is : [124, 20, 106, 35, 44] The result is : [20, 124, 106, 35, 44]
คำอธิบาย
กำหนดฟังก์ชัน
sort_list_digitที่รับตัวเลข แปลงเป็นสตริง แยกหลักตัวเลขเป็นลิสต์ int แล้วคืนค่าผลรวมกำหนดลิสต์ตัวเลขและแสดงผล
ใช้
sorted()เรียงลำดับลิสต์ โดยระบุkey=sort_list_digitเพื่อเรียงตามผลรวมหลักตัวเลขแสดงผลลัพธ์ที่เรียงแล้ว (20→2, 124→7, 106→7, 35→8, 44→8)