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

หาผลรวมหลักของตัวเลขใน List ด้วย Python

บทนำ

การหาผลรวมของตัวเลขแต่ละหลัก (digit sum) ของทุกตัวเลขในลิสต์ เช่น 23 → 2+3=5 สามารถทำได้โดยแปลงเป็นสตริง แล้ววนบวกแต่ละตัวอักษร

ตัวอย่างโค้ด

numbers = [11, 23, 41, 62, 89, 0, 10]
print("ลิสต์:", numbers)

digit_sums = []
for num in numbers:
    # แปลงเป็นสตริง วนบวกแต่ละ digit
    digit_sum = sum(int(d) for d in str(num))
    digit_sums.append(digit_sum)

print("ผลรวมหลักแต่ละตัว:", digit_sums)

ผลลัพธ์

ลิสต์: [11, 23, 41, 62, 89, 0, 10]
ผลรวมหลักแต่ละตัว: [2, 5, 5, 8, 17, 0, 1]

คำอธิบาย

  • str(num) แปลงตัวเลขเป็นสตริง "23"
  • for d in str(num) วนแต่ละตัวอักษร '2', '3'
  • int(d) แปลงกลับเป็นตัวเลข
  • sum(...) บวกทั้งหมด

รูปแบบ List Comprehension

digit_sums = [sum(int(d) for d in str(num)) for num in numbers]
print(digit_sums)  # [2, 5, 5, 8, 17, 0, 1]

การประยุกต์: Digital Root (รากดิจิตอล)

def digital_root(n):
    while n >= 10:
        n = sum(int(d) for d in str(n))
    return n

print([digital_root(n) for n in numbers])  # [2, 5, 5, 8, 8, 0, 1]