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