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

อัปเดตรายการ tuples โดยใช้รายการอื่นใน Python


เมื่อจำเป็นต้องอัปเดตรายการ tuple โดยใช้รายการอื่น สามารถใช้ 'defaultdict' ได้

Defaultdict เป็นคอนเทนเนอร์ที่คล้ายกับพจนานุกรมซึ่งมีอยู่ในโมดูล 'คอลเลกชัน' เป็นคลาสย่อยของคลาส 'dict' มันส่งกลับวัตถุเหมือนพจนานุกรม 'defaultdict' ไม่ได้เพิ่ม KeyError เลย โดยจะให้ค่าเริ่มต้นสำหรับคีย์ที่ไม่มีอยู่

ด้านล่างนี้เป็นการสาธิตสำหรับสิ่งเดียวกัน -

ตัวอย่าง

from collections import defaultdict
def merge_vals(list_1, list_2):
   my_dict = defaultdict(list)
   for i, j in list_1 + list_2:
      my_dict[i].append(j)    
   return sorted([(i, max(j)) for i, j in my_dict.items()],
   key = lambda x:x[0])

my_list_1 = [('v', 1), ('q', 2), ('o', 0)]
my_list_2 = [('q', 5), ('o', 3)]

print("The first list of tuple is : ")
print(my_list_1)
print("The second list of tuple is : ")
print(my_list_2)
print("After merging, it becomes : ")
print(merge_vals(my_list_1, my_list_2))

ผลลัพธ์

The first list of tuple is :
[('v', 1), ('q', 2), ('o', 0)]
The second list of tuple is :
[('q', 5), ('o', 3)]
After merging, it becomes :
[('o', 3), ('q', 5), ('v', 1)]

คำอธิบาย

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