Python: fusiona la lista de diccionarios con claves duplicadas

Dadas dos listas de diccionarios con posibles claves duplicadas, escriba un programa Python para realizar la combinación.

Ejemplos:

Entrada : test_list1 = [{“gfg”: 1, “best”: 4}, {“geeks”: 10, “good”: 15}, {“love”: “gfg”}], test_list2 = [{“gfg” ”: 6}, {“mejor”: 3, “para”: 10, “geeks”: 1}, {“gfg”: 10}] 
Salida : [{‘gfg’: 1, ‘mejor’: 4}, {‘geeks’: 10, ‘good’: 15, ‘better’: 3, ‘for’: 10}, {‘love’: ‘gfg’, ‘gfg’: 10}] 
Explicación : gfg mientras se fusiona conserva el valor de 1, y «mejor» se agrega al diccionario como clave del primer diccionario de otra lista (mismo índice).
 

Entrada : test_list1 = [{“gfg”: 1, “best”: 4}, {“love”: “gfg”}], test_list2 = [{“gfg”: 6}, {“gfg”: 10}] 
Salida : [{‘gfg’: 1, ‘best’: 4}, {‘love’: ‘gfg’, ‘gfg’: 10}] 
Explicación : gfg mientras se fusiona conserva el valor de 1, y «mejor» se agrega al diccionario como clave del primer diccionario de otra lista (mismo índice). 

Enfoque: usando bucle + teclas()

En esto, reconstruimos el par de valores clave de acuerdo con todas las claves que no se repiten, verificando usando el operador in y extrayendo claves usando keys().

Python3

# Python3 code to demonstrate working of
# Merge Dictionaries List with duplicate Keys
# Using loop + keys()
  
# initializing lists
test_list1 = [{"gfg": 1, "best": 4}, {"geeks": 10, "good": 15},
              {"love": "gfg"}]
  
test_list2 = [{"gfg": 6}, {"better": 3, "for": 10, "geeks": 1},
              {"gfg": 10}]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
  
  
for idx in range(0, len(test_list1)):
  
    # getting keys of corresponding index
    id_keys = list(test_list1[idx].keys())
    for key in test_list2[idx]:
  
        # checking for keys presence
        if key not in id_keys:
            test_list1[idx][key] = test_list2[idx][key]
  
# printing result
print("The Merged Dictionary list : " + str(test_list1))

Producción:

La lista original 1 es: [{‘gfg’: 1, ‘best’: 4}, {‘geeks’: 10, ‘good’: 15}, {‘love’: ‘gfg’}]
La lista original 2 es : [{‘gfg’: 6}, {‘better’: 3, ‘for’: 10, ‘geeks’: 1}, {‘gfg’: 10}]
La lista del diccionario combinado: [{‘gfg’: 1 , ‘mejor’: 4}, {‘geeks’: 10, ‘bueno’: 15, ‘mejor’: 3, ‘para’: 10}, {‘amor’: ‘gfg’, ‘gfg’: 10}]

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *