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

Python - รวม Dictionary List ที่มี Key ซ้ำกัน

รวม List ของ Dictionary 2 ชุด โดย Key ที่ซ้ำกันใน Index เดียวกันจะเก็บค่าจาก List แรก Key ที่อยู่ใน List ที่ 2 แต่ไม่อยู่ใน List ที่ 1 จะถูกเพิ่มเข้าไป

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

my_list_1 = [{"aba": 1, "best": 4}, {"python": 10, "fun": 15}, {"scala": "fun"}]
my_list_2 = [{"scala": 6}, {"python": 3, "best": 10}, {"java": 1}]

print("The first list is : ")
print(my_list_1)
print("The second list is : ")
print(my_list_2)

for i in range(0, len(my_list_1)):
    id_keys = list(my_list_1[i].keys())
    for key in my_list_2[i]:
        if key not in id_keys:
            my_list_1[i][key] = my_list_2[i][key]

print("The result is : ")
print(my_list_1)

ผลลัพธ์

The first list is : [{'aba': 1, 'best': 4}, {'python': 10, 'fun': 15}, {'scala': 'fun'}]
The second list is : [{'scala': 6}, {'python': 3, 'best': 10}, {'java': 1}]
The result is : [{'aba': 1, 'best': 4, 'scala': 6}, {'python': 10, 'fun': 15, 'best': 10}, {'scala': 'fun', 'java': 1}]

คำอธิบาย

  • สมมติ 2 List ความยาวเท่ากัน จับคู่ตาม Index
  • วนลูป Index, ดึง Keys ของ Dict ใน List 1
  • วนลูป Keys ของ Dict ใน List 2
  • ถ้า Key ไม่อยู่ใน Dict List 1 -> เพิ่ม Key:Value จาก List 2
  • Key ที่ซ้ำ (python, best) จะคงค่าเดิมจาก List 1 (ไม่ Overwrite)