เมื่อต้องการอัปเดตลิสต์ของ Tuple ด้วยลิสต์อื่น สามารถใช้ 'defaultdict' ได้
Defaultdict เป็นคอนเทนเนอร์คล้ายดิกชันนารีอยู่ในโมดูล 'collections' เป็น sub-class ของคลาส 'dict' คืนค่าออบเจ็กต์คล้ายดิกชันนารี 'defaultdict' ไม่มีการยก KeyError มันให้ค่าเริ่มต้นสำหรับ key ที่ไม่มีอยู่
ตัวอย่าง
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
- วนลูปองค์ประกอบในลิสต์ ใช้องค์ประกอบของลิสต์แรกเป็น index และองค์ประกอบจาก index ที่สอง append เข้าไปในดิกชันนารี
- เรียงลำดับดิกชันนารีนี้และคืนค่า
- สร้างสองลิสต์ของ Tuple และแสดงบนคอนโซล
- เรียกเมธอด 'merge_vals' ส่งลิสต์ของ Tuple ทั้งสองเป็นพารามิเตอร์
- แสดงผลบนคอนโซล