ลิสต์ใน Python สามารถบวกกันได้ สร้างลิสต์ใหม่ที่มีสมาชิกจากทั้งสองลิสต์ มีหลายวิธีการบวกสองลิสต์ อธิบายด้านล่าง แต่ในทุกกรณี ลิสต์ต้องมีความยาวเท่ากัน
ใช้ Append()
ใช้ append() เพื่อเพิ่มสมาชิกของลิสต์หนึ่งเข้าไปอีกลิสต์หนึ่ง
ตัวอย่าง
List1 = [7, 5.7, 21, 18, 8/3]
List2 = [9, 15, 6.2, 1/3, 11]
# พิมพ์ลิสต์ต้นฉบับ
print("list1:", str(List1))
print("list2:", str(List2))
newList = []
for n in range(0, len(List1)):
newList.append(List1[n] + List2[n])
print(newList)
การรันโค้ดข้างต้นจะให้ผลลัพธ์ดังนี้:
list1: [7, 5.7, 21, 18, 2.6666666666666665] list2: [9, 15, 6.2, 0.3333333333333333, 11] [16, 20.7, 27.2, 18.333333333333332, 13.666666666666666]
ใช้ Map() และ Add()
เราสามารถใช้ map() ร่วมกับ add() เพื่อบวกสมาชิกของลิสต์ ฟังก์ชัน map ใช้พารามิเตอร์แรกคือฟังก์ชัน add และบวกสมาชิกของสองลิสต์ที่อยู่ในดัชนีเดียวกัน
ตัวอย่าง
from operator import add
# บวกสองสมาชิกในลิสต์
List1 = [7, 5.7, 21, 18, 8/3]
List2 = [9, 15, 6.2, 1/3, 11]
# พิมพ์ลิสต์ต้นฉบับ
print("list1:", str(List1))
print("list2:", str(List2))
NewList = list(map(add, List1, List2))
print(NewList)
การรันโค้ดข้างต้นจะให้ผลลัพธ์ดังนี้:
list1: [7, 5.7, 21, 18, 2.6666666666666665] list2: [9, 15, 6.2, 0.3333333333333333, 11] [16, 20.7, 27.2, 18.333333333333332, 13.666666666666666]
ใช้ Zip() และ Sum()
ในแนวทางคล้ายกัน เราสามารถใช้ zip() และ sum() พร้อมลูป for ผ่านลูป for เราผูกสมาชิกสองตัวของลิสต์ที่อยู่ในดัชนีเดียวกัน แล้วใช้ sum() กับแต่ละคู่
ตัวอย่าง
# บวกสองสมาชิกในลิสต์ List1 = [7, 5.7, 21, 18, 8/3] List2 = [9, 15, 6.2, 1/3, 11] result = [sum(n) for n in zip(List1, List2)] print(result)
การรันโค้ดข้างต้นจะให้ผลลัพธ์ดังนี้:
[16, 20.7, 27.2, 18.333333333333332, 13.666666666666666]
สรุป: มี 3 วิธีหลักในการบวกสมาชิกลิสต์คู่กัน: for loop + append, map+add, zip+sum ทั้งหมดต้องการลิสต์ความยาวเท่ากัน