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

Python รวมกลุ่มของรายการทูเพิล¶


ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่เพิ่มค่าทั้งหมดด้วยคีย์เดียวกัน แสดงรายการต่างๆ มาดูตัวอย่างให้เข้าใจกันชัดๆ

อินพุต

list_one = [('a', 2), ('b', 3), ('c', 5)]
list_two = [('c', 7), ('a', 4), ('b', 2)]

ผลลัพธ์

[('a', 6), ('b', 5), ('c', 12)]

ทำตามขั้นตอนที่กำหนดเพื่อแก้ปัญหา

  • เริ่มต้นรายการ
  • แปลงรายการแรกเป็นพจนานุกรมโดยใช้ dict และเก็บไว้ในตัวแปร
  • วนซ้ำในรายการที่สองและเพิ่มค่าที่เกี่ยวข้องให้กับคีย์ที่มีอยู่ในพจนานุกรม
  • พิมพ์ผลลัพธ์

ตัวอย่าง

# initializing the lists
list_one = [('a', 2), ('b', 3), ('c', 5)]
list_two = [('c', 7), ('a', 4), ('b', 2)]
# convering list_one to dict
result = dict(list_one)
# iterating over the second list
for tup in list_two:
   # checking for the key in dict
   if tup[0] in result:
      result[tup[0]] = result.get(tup[0]) + tup[1]
      # printing the result as list of tuples
print(list(result.items()))

ผลลัพธ์

หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้

[('a', 6), ('b', 5), ('c', 12)]

เราสามารถแก้ปัญหาข้างต้นได้โดยไม่ต้องทำซ้ำรายการใดๆ โดยใช้ Counter fromcollections . มาดูกันเลย

ตัวอย่าง

# importing the Counter
from collections import Counter
# initializing the lists
list_one = [('a', 2), ('b', 3), ('c', 5)]
list_two = [('c', 7), ('a', 4), ('b', 2)]
# getting the result
result = Counter(dict(list_one)) + Counter(dict())
# printing the result as list of tuples
print(list(result.items()))

ผลลัพธ์

หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้

[('a', 6), ('b', 5), ('c', 12)]

บทสรุป

หากคุณมีข้อสงสัยเกี่ยวกับบทแนะนำ โปรดระบุในส่วนความคิดเห็น