Python: claves de valor únicas en un diccionario con listas como valores

A veces, mientras trabajamos con los diccionarios de Python, podemos tener problemas en los que necesitamos extraer claves con valores que son únicos (debe haber al menos un elemento que no esté presente en otras listas) , es decir, no aparece en las listas de valores de ninguna otra clave . Esto puede tener aplicaciones en el preprocesamiento de datos. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.º 1: Usar loop +count()
La combinación de las funcionalidades anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de contar las ocurrencias usando el conteo y la extracción y la prueba se realiza usando un bucle usando una declaración condicional.

# Python3 code to demonstrate working of 
# Unique Keys Values
# Using loop + count()
  
# initializing dictionary
test_dict = {'Gfg' : [6, 5], 'is' : [6, 10, 5], 'best' : [12, 6, 5]} 
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# Unique Keys Values
# Using loop + count()
temp = [sub for ele in test_dict.values() for sub in ele]
res = []
for key, vals in test_dict.items():
    for val in vals:
        if temp.count(val) == 1:
            res.append(key)
            break
  
# printing result 
print("The unique values keys are : " + str(res)) 
Producción :

The original dictionary is : {'Gfg': [6, 5], 'best': [12, 6, 5], 'is': [6, 10, 5]}
The unique values keys are : ['best', 'is']

Método n.º 2: usar la comprensión de listas +any() + count()
La combinación de las funciones anteriores se puede usar para realizar esta tarea. En esto, verificamos los elementos únicos usando any() y count(). Esta es una forma lineal en la que se puede realizar esta tarea.

# Python3 code to demonstrate working of 
# Unique Keys Values
# Using list comprehension + any() + count()
  
# initializing dictionary
test_dict = {'Gfg' : [6, 5], 'is' : [6, 10, 5], 'best' : [12, 6, 5]} 
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# Unique Keys Values
# Using list comprehension + any() + count()
res = [key for key, vals in test_dict.items() if any([ele for sub in test_dict.values()
       for ele in set(sub)].count(idx) == 1 for idx in vals)]
  
# printing result 
print("The unique values keys are : " + str(res)) 
Producción :

The original dictionary is : {'Gfg': [6, 5], 'best': [12, 6, 5], 'is': [6, 10, 5]}
The unique values keys are : ['best', 'is']

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 *