A veces, mientras trabajamos con los diccionarios de Python, podemos tener un problema en el que necesitamos eliminar todos los valores duplicados en todas las listas de valores del diccionario. Este problema puede tener aplicación en dominios de datos y dominios de desarrollo web. Analicemos ciertas formas en que se puede realizar esta tarea.
Entrada : test_dict = {‘Manjeet’: [1], ‘Akash’: [1, 8, 9]}
Salida : {‘Manjeet’: [], ‘Akash’: [8, 9]}Entrada : test_dict = {‘Manjeet’: [1, 1, 1], ‘Akash’: [1, 1, 1]}
Salida : {‘Manjeet’: [], ‘Akash’: []}
Método n.º 1: usar Counter()
la comprensión de lista +
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, usamos Counter() para extraer todas las frecuencias y la comprensión de la lista para asignar el valor con una sola aparición en la lista de valores.
# Python3 code to demonstrate working of # Remove duplicate values across Dictionary Values # Using Counter() + list comprehension from collections import Counter # initializing dictionary test_dict = {'Manjeet' : [1, 4, 5, 6], 'Akash' : [1, 8, 9], 'Nikhil': [10, 22, 4], 'Akshat': [5, 11, 22]} # printing original dictionary print("The original dictionary : " + str(test_dict)) # Remove duplicate values across Dictionary Values # Using Counter() + list comprehension cnt = Counter() for idx in test_dict.values(): cnt.update(idx) res = {idx: [key for key in j if cnt[key] == 1] for idx, j in test_dict.items()} # printing result print("Uncommon elements records : " + str(res))
El diccionario original: {‘Akshat’: [5, 11, 22], ‘Nikhil’: [10, 22, 4], ‘Manjeet’: [1, 4, 5, 6], ‘Akash’: [1, 8, 9]}
Registros de elementos poco comunes: {‘Akshat’: [11], ‘Nikhil’: [10], ‘Manjeet’: [6], ‘Akash’: [8, 9]}
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