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

เพิ่มองค์ประกอบรายการด้วยหลายรายการตามดัชนีใน Python


รายการสามารถซ้อนกันได้ ซึ่งหมายความว่าเรามีรายการที่เล็กกว่าเป็นองค์ประกอบภายในรายการที่ใหญ่กว่า ในบทความนี้ เราแก้ปัญหาความท้าทายในการเพิ่มองค์ประกอบของรายการแบบง่ายไปยังองค์ประกอบของรายการที่ซ้อนกัน หากความยาวของรายการไม่เท่ากัน ความยาวของรายการที่เล็กกว่าจะกลายเป็นความยาวสูงสุดของรายการผลลัพธ์

ด้านล่างนี้คือวิธีการต่างๆ ในการทำสิ่งนี้ให้สำเร็จ

ใช้สำหรับวนซ้ำ

ในวิธีนี้ เราจะใช้ความยาวของรายการที่เล็กกว่าและวนรอบองค์ประกอบของรายการนี้เพิ่มไปยังองค์ประกอบของรายการที่ใหญ่กว่า ที่นี่เราใช้ฟังก์ชันผนวกเพื่อผนวกแต่ละองค์ประกอบลงในรายการผลลัพธ์

ตัวอย่าง

simple_list = [25, 35, 45, 55, 65]
nested_list = [[5,10], [10], [5,15], [25], [5,10,15],[5,6]]
result_list = []

for n in range(len(simple_list)):
   var = []
   for m in nested_list[n]:
      var.append(m + simple_list[n])
   result_list.append(var)
print("The first list :", simple_list)
print("The nested list :", nested_list)
print("Result :",result_list)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

The first list : [25, 35, 45, 55, 65]
The nested list : [[5, 10], [10], [5, 15], [25], [5, 10, 15], [5, 6]]
Result : [[30, 35], [45], [50, 60], [80], [70, 75, 80]]

ใช้ enumerate()

ฟังก์ชัน enumerate() รับคอลเล็กชันเช่น list หรือ tuple และส่งกลับเป็นอ็อบเจกต์ที่แจกแจง ในแนวทางนี้ ขั้นแรกเราจะสร้าง outer for loop ที่มีฟังก์ชัน enumerate เพื่อรับแต่ละองค์ประกอบของรายการที่ซ้อนกันแล้วเพิ่มลงในองค์ประกอบตามลำดับในรายการอย่างง่ายผ่าน inner for loop

ตัวอย่าง

simple_list = [25, 35, 45, 55, 65,25]
nested_list = [[5,10], [10], [5,15], [25], [5,10,15]]
result_list = []

# using enumerate
result_list = [[val + simple_list[p] for val in q] for p, q in enumerate(nested_list)]
print("The first list :", simple_list)
print("The nested list :", nested_list)
print("Result :",result_list)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

The first list : [25, 35, 45, 55, 65, 25]
The nested list : [[5, 10], [10], [5, 15], [25], [5, 10, 15]]
Result : [[30, 35], [45], [50, 60], [80], [70, 75, 80]]

การใช้ zip()

ในวิธีนี้เราทำซ้ำโปรแกรมข้างต้น แต่ใช้ zip () แทนการแจกแจง zip() รับทั้งสองรายการเป็นอินพุต

ตัวอย่าง

simple_list = [25, 35, 45, 55, 65,25]
nested_list = [[5,10], [10], [5,15], [25], [5,10,15]]
result_list = []

result_list = [[w + u for w in v ]for u, v in zip(simple_list, nested_list)]

print("The first list :", simple_list)
print("The nested list :", nested_list)
print("Result :",result_list)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

The first list : [25, 35, 45, 55, 65, 25]
The nested list : [[5, 10], [10], [5, 15], [25], [5, 10, 15]]
Result : [[30, 35], [45], [50, 60], [80], [70, 75, 80]]