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

Python – หาผลรวมตัวเลขติดกันแบบทับซ้อนในลิสต์

เมื่อต้องการหาผลรวมของตัวเลขติดกันแบบทับซ้อน (overlapping) ในลิสต์ สามารถใช้ list comprehension, list slicing, ตัวดำเนินการ + และ zip() ได้

ตัวอย่าง

my_list = [41, 27, 53, 12, 29, 32, 16]
print("The list is :")
print(my_list)
my_result = [a + b for a, b in zip(my_list, my_list[1:] + [my_list[0]])]
print("The result is :")
print(my_result)

ผลลัพธ์

The list is : [41, 27, 53, 12, 29, 32, 16]
The result is : [68, 80, 65, 41, 61, 48, 57]

คำอธิบาย

  • กำหนดลิสต์ตัวเลขและแสดงผล

  • ใช้ zip() จับคู่แต่ละตัวกับตัวถัดไป (my_list[1:]) และเติมตัวแรกท้ายสุด (+ [my_list[0]]) เพื่อทำให้วนรอบ (circular)

  • ใช้ list comprehension บวกคู่ที่จับคู่ได้ (a + b)

  • แสดงผลลัพธ์ลิสต์ผลรวม