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

รวมทัพเพิลที่มีองค์ประกอบแรกเหมือนกันใน Python


เมื่อต้องการรวมทัพเพิลที่อยู่ติดกันและมีองค์ประกอบแรก (index 0) เหมือนกัน สามารถใช้ลูป for ตรวจสอบและใช้ extend() รวมค่า

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

my_list = [(43, 15), (66, 98), (64, 80), (14, 9), (47, 17)]
print("The list is:")
print(my_list)

result = []
for sub in my_list:
    if result and result[-1][0] == sub[0]:
        result[-1].extend(sub[1:])
    else:
        result.append([ele for ele in sub])

result = list(map(tuple, result))
print("The merged elements are:")
print(result)

ผลลัพธ์

The list is: [(43, 15), (66, 98), (64, 80), (14, 9), (47, 17)]
The merged elements are: [(43, 15), (66, 98), (64, 80), (14, 9), (47, 17)]

คำอธิบาย

  • สร้างลิสต์ว่าง result เก็บผลลัพธ์ชั่วคราวเป็นลิสต์ (เพื่อให้ extend ได้)

  • วนลูปผ่านทัพเพิลแต่ละคู่ใน my_list

  • ถ้า result ไม่ว่าง และทัพเพิลล่าสุดมีค่าแรกเท่ากับทัพเพิลปัจจุบัน ให้ extend ค่าที่เหลือ

  • ถ้าไม่ตรง ให้เพิ่มทัพเพิลใหม่เข้าไป (แปลงเป็นลิสต์ก่อน)

  • สุดท้ายแปลงกลับเป็นทัพเพิลด้วย map(tuple, result)

  • ตัวอย่างนี้ไม่มีทัพเพิลที่มีค่าแรกซ้ำติดกัน จึงไม่มีการรวมเกิดขึ้น