Dada una lista de elementos, realice la agrupación de elementos similares, como una lista de clave-valor diferente en el diccionario.
Entrada : test_list = [4, 6, 6, 4, 2, 2, 4, 8, 5, 8] Salida : {4: [4, 4, 4], 6: [6, 6], 2: [2 , 2], 8: [8, 8], 5: [5]} Explicación : Elementos similares agrupados en ocurrencias. Entrada : test_list = [7, 7, 7, 7] Salida : {7: [7, 7, 7, 7]} Explicación : Elementos similares agrupados en ocurrencias.
Método n. ° 1: usar defaultdict() + bucle
Esta es una de las formas en que se puede realizar esta tarea. En esto, construimos un dictamen predeterminado() con una lista predeterminada y seguimos agregando valores similares en una lista similar.
Python3
# Python3 code to demonstrate working of # Group Similar items to Dictionary Values List # Using defaultdict + loop from collections import defaultdict # initializing list test_list = [4, 6, 6, 4, 2, 2, 4, 4, 8, 5, 8] # printing original list print("The original list : " + str(test_list)) # using defaultdict for default list res = defaultdict(list) for ele in test_list: # appending Similar values res[ele].append(ele) # printing result print("Similar grouped dictionary : " + str(dict(res)))
The original list : [4, 6, 6, 4, 2, 2, 4, 4, 8, 5, 8] Similar grouped dictionary : {4: [4, 4, 4, 4], 6: [6, 6], 2: [2, 2], 8: [8, 8], 5: [5]}
Método #2: Usando la comprensión del diccionario + Contador()
Esta es otra forma más en la que se puede realizar esta tarea. En esto, extraemos la frecuencia usando Counter() y luego repetimos las ocurrencias usando la multiplicación.
Python3
# Python3 code to demonstrate working of # Group Similar items to Dictionary Values List # Using dictionary comprehension + Counter() from collections import Counter # initializing list test_list = [4, 6, 6, 4, 2, 2, 4, 4, 8, 5, 8] # printing original list print("The original list : " + str(test_list)) # using * operator to perform multiplication res = {key : [key] * val for key, val in Counter(test_list).items()} # printing result print("Similar grouped dictionary : " + str(res))
The original list : [4, 6, 6, 4, 2, 2, 4, 4, 8, 5, 8] Similar grouped dictionary : {4: [4, 4, 4, 4], 6: [6, 6], 2: [2, 2], 8: [8, 8], 5: [5]}
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