Python: pares de elementos de listas en el diccionario

A veces, mientras trabajamos con registros, podemos tener problemas en los que podemos tener un par de listas, necesitamos emparejar elementos similares al diccionario de valor clave único. Este es un problema muy peculiar pero puede tener aplicaciones en dominios de datos. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.º 1: Usar loop +extend() + enumerate()
La combinación de las funcionalidades anteriores se puede emplear para resolver esta pregunta. En esto, iteramos para las listas y agregamos elementos similares a una clave similar usando extend().

# Python3 code to demonstrate working of 
# Pair lists elements to Dictionary
# Using loop + extend() + enumerate()
  
# initializing lists
test_list1 = [1, 2, 3, 1, 1, 2, 3]
test_list2 = [[4, 5], [6, 7], [2, 3], [10, 12], 
                 [56, 43], [98, 100], [0, 13]]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
  
# Pair lists elements to Dictionary
# Using loop + extend() + enumerate()
res = dict()
for idx, val in enumerate(test_list1):
    if val in res:
        res[val].extend(list(test_list2[idx]))
    else:
        res[val] = list(test_list2[idx])
  
# printing result 
print("The Like elements compiled Dictionary is : " + str(res)) 
Producción :

La lista original 1 es: [1, 2, 3, 1, 1, 2, 3]
La lista original 2 es: [[4, 5], [6, 7], [2, 3], [10, 12 ], [56, 43], [98, 100], [0, 13]]
El diccionario compilado de elementos similares es: {1: [4, 5, 10, 12, 56, 43], 2: [6, 7 , 98, 100], 3: [2, 3, 0, 13]}

Método #2: Usardefaultdict() + zip()
La combinación de las tareas anteriores también se puede usar para resolver este problema. En esto, emparejamos elementos usando zip() e inicializamos los valores del diccionario como una lista para evitar probar la existencia del primer valor.

# Python3 code to demonstrate working of 
# Pair lists elements to Dictionary
# Using defaultdict() + zip()
from collections import defaultdict
  
# initializing lists
test_list1 = [1, 2, 3, 1, 1, 2, 3]
test_list2 = [[4, 5], [6, 7], [2, 3], [10, 12], 
                 [56, 43], [98, 100], [0, 13]]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
  
# Pair lists elements to Dictionary
# Using defaultdict() + zip()
res = defaultdict(list)
for ele1, ele2 in zip(test_list1, test_list2):
    res[ele1].extend(ele2)
  
# printing result 
print("The Like elements compiled Dictionary is : " + str(dict(res))) 
Producción :

La lista original 1 es: [1, 2, 3, 1, 1, 2, 3]
La lista original 2 es: [[4, 5], [6, 7], [2, 3], [10, 12 ], [56, 43], [98, 100], [0, 13]]
El diccionario compilado de elementos similares es: {1: [4, 5, 10, 12, 56, 43], 2: [6, 7 , 98, 100], 3: [2, 3, 0, 13]}

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 *