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))
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)))
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