Python: extracción de claves que no están en valores

A veces, mientras trabajamos con los diccionarios de Python, podemos tener un problema en el que necesitamos obtener todas las claves que no aparecen en las listas de valores. Esto puede tener aplicaciones en dominios como la programación día a día. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n. ° 1: usar el set() + values() + keys()bucle +
Esta es una forma bruta de abordar esta tarea. En esto, probamos los elementos en las listas de valores y seguimos agregándolos en una lista separada. Luego restamos esto de las claves extraídas usando keys().

# Python3 code to demonstrate working of 
# Extracting keys not in values
# Using set() + keys() + values() + loop
  
# initializing Dictionary
test_dict = {3 : [1, 3, 4], 5 : [1, 2], 6 : [4, 3], 4 : [1, 3]}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# Extracting keys not in values
# Using set() + keys() + values() + loop
temp1 = set(test_dict.keys())
temp2 = set()
for ele in test_dict.values():
    temp2.update(ele)
res = list(temp1 - temp2)
  
# printing result 
print("The extracted keys are : " + str(res)) 
Producción :

El diccionario original es: {3: [1, 3, 4], 4: [1, 3], 5: [1, 2], 6: [4, 3]}
Las claves extraídas son: [5, 6]

Método n.º 2: usar la expresión del generador +set()
Este método es similar al método anterior. La diferencia es que se realiza como una sola línea en formato compacto utilizando la expresión del generador.

# Python3 code to demonstrate working of 
# Extracting keys not in values
# Using generator expression + set()
  
# initializing Dictionary
test_dict = {3 : [1, 3, 4], 5 : [1, 2], 6 : [4, 3], 4 : [1, 3]}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# Extracting keys not in values
# Using generator expression + set()
res = list(set(test_dict) - set(ele for sub in test_dict.values() for ele in sub))
  
# printing result 
print("The extracted keys are : " + str(res)) 
Producción :

El diccionario original es: {3: [1, 3, 4], 4: [1, 3], 5: [1, 2], 6: [4, 3]}
Las claves extraídas son: [5, 6]

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 *