Python | Combinar valores clave de Python para listar

A veces, mientras trabajamos con Python, podemos tener un problema en el que necesitamos obtener los valores del diccionario de varios diccionarios para encapsularlos en un solo diccionario. Este tipo de problema puede ser común en dominios en los que trabajamos con datos relacionales como en desarrollos web. Analicemos ciertas formas en que se puede resolver este problema.

Método n.º 1: usar el setdefault()bucle +
Esta tarea se puede realizar usando un bucle anidado y recuperando cada elemento del diccionario y creando una nueva lista para la nueva clave o agregando los valores en caso de que ocurra una clave similar.

# Python3 code to demonstrate working of
# Merge Python key values to list
# Using setdefault() + loop
  
# Initialize list
test_list = [{'gfg' : 2, 'is' : 4, 'best' : 6}, 
             {'it' : 5, 'is' : 7, 'best' : 8},
             {'CS' : 10}]
  
# Printing original list
print("The original list is : " + str(test_list))
  
# using setdefault() + loop
# Merge Python key values to list
res = {}
for sub in test_list:
    for key, val in sub.items(): 
        res.setdefault(key, []).append(val)
  
# printing result 
print("The merged values encapsulated dictionary is : " + str(res))
Producción :

La lista original es: [{‘is’: 4, ‘gfg’: 2, ‘best’: 6}, {‘it’: 5, ‘is’: 7, ‘best’: 8}, {‘CS’ : 10}]
El diccionario encapsulado de valores fusionados es: {‘is’: [4, 7], ‘it’: [5], ‘gfg’: [2], ‘CS’: [10], ‘best’: [6, 8]}

Método n.° 2: uso de comprensión de lista + comprensión de diccionario
La combinación de arriba se puede usar para realizar esta tarea en particular. Esto ofrece una sola línea que se puede emplear para esta tarea. Aunque podría ser eficiente en el dominio del rendimiento.

# Python3 code to demonstrate working of
# Merge Python key values to list
# Using list comprehension + dictionary comprehension
  
# Initialize list
test_list = [{'gfg' : 2, 'is' : 4, 'best' : 6}, 
             {'it' : 5, 'is' : 7, 'best' : 8},
             {'CS' : 10}]
  
# Printing original list
print("The original list is : " + str(test_list))
  
# using list comprehension + dictionary comprehension
# Merge Python key values to list
res = {key: list({sub[key] for sub in test_list if key in sub})
      for key in {key for sub in test_list for key in sub}}
  
# printing result 
print("The merged values encapsulated dictionary is : " + str(res))
Producción :

La lista original es: [{‘is’: 4, ‘gfg’: 2, ‘best’: 6}, {‘it’: 5, ‘is’: 7, ‘best’: 8}, {‘CS’ : 10}]
El diccionario encapsulado de valores fusionados es: {‘is’: [4, 7], ‘it’: [5], ‘gfg’: [2], ‘CS’: [10], ‘best’: [6, 8]}

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 *