Python: elimine los valores duplicados en los valores del diccionario

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

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

Deja una respuesta

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