Python: agregue valores similares como clave

A veces, mientras trabajamos con datos, podemos tener problemas en los que necesitamos categorizar una lista particular y valores a claves similares. Esto puede ser un problema al contar datos. Como contar votos o contar monedas. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.º 1: Uso del bucle
Esta es la forma bruta en la que se puede realizar esta tarea. En esto, ejecutamos un ciclo para agregar valores a la lista de valores del diccionario, si no está presente, creamos dinámicamente la clave y realizamos la adición.

# Python3 code to demonstrate working of 
# Append Similar Values as Key
# Using loop
  
# initializing list
test_list = ['Manjeet', 'Nikhil', 'Akshat', 'Akash', 
            'Manjeet', 'Akash', 'Akshat', 'Manjeet']
  
# printing original list
print("The original list is : " + str(test_list))
  
# Append Similar Values as Key
# Using loop
res = dict()
for ele in test_list:
    try:
        res[ele].append(ele)
    except KeyError:
        res[ele] = [ele]
  
# printing result 
print("The similar values dictionary is : " + str(res)) 
Producción :

La lista original es: [‘Manjeet’, ‘Nikhil’, ‘Akshat’, ‘Akash’, ‘Manjeet’, ‘Akash’, ‘Akshat’, ‘Manjeet’]
El diccionario de valores similares es: {‘Nikhil’: [ ‘Nikhil’], ‘Manjeet’: [‘Manjeet’, ‘Manjeet’, ‘Manjeet’], ‘Akash’: [‘Akash’, ‘Akash’], ‘Akshat’: [‘Akshat’, ‘Akshat’] }

Método n.º 2: usar el defaultdict()bucle +
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, inicializamos previamente el diccionario usando defaultdict().

# Python3 code to demonstrate working of 
# Append Similar Values as Key
# Using defaultdict() + loop
from collections import defaultdict
  
# initializing list
test_list = ['Manjeet', 'Nikhil', 'Akshat', 'Akash', 
         'Manjeet', 'Akash', 'Akshat', 'Manjeet']
  
# printing original list
print("The original list is : " + str(test_list))
  
# Append Similar Values as Key
# Using defaultdict() + loop
res = defaultdict(list)
for sub in test_list:
    res[sub].append(sub)
  
# printing result 
print("The similar values dictionary is : " + str(dict(res))) 
Producción :

La lista original es: [‘Manjeet’, ‘Nikhil’, ‘Akshat’, ‘Akash’, ‘Manjeet’, ‘Akash’, ‘Akshat’, ‘Manjeet’]
El diccionario de valores similares es: {‘Nikhil’: [ ‘Nikhil’], ‘Manjeet’: [‘Manjeet’, ‘Manjeet’, ‘Manjeet’], ‘Akash’: [‘Akash’, ‘Akash’], ‘Akshat’: [‘Akshat’, ‘Akshat’] }

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 *