Python – Agrupar elementos similares a la lista de valores del diccionario

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)))
Producción

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))
Producción

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

Deja una respuesta

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