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

Python – เรียงลำดับลิสต์ตามผลรวมหลักของตัวเลข

เมื่อต้องการเรียงลำดับสมาชิกในลิสต์ตามผลรวมของหลักตัวเลข (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)