Python: elimine las claves de tupla disjuntas del diccionario

A veces, mientras trabajamos con los diccionarios de Python, podemos tener un problema en el que necesitamos eliminar las claves de tupla de los registros en función de la presencia de clave que coincida con cualquiera de las claves presentes de elementos de otras listas. Este tipo de problema puede tener aplicaciones en dominios de datos. Analicemos ciertas formas en que se puede realizar esta tarea.

Entrada : test_dict = {(9, 3): 4, (‘es’, 6): 2, (‘para’, 9): ‘geeks’}
Salida : {}

Entrada : test_dict = {(‘es’, 9): 2, (‘para’, 8): 7}
Salida : {(‘para’, 8): 7}

Método n.º 1: Uso del bucle
Esta es una de las formas en que se puede realizar esta tarea. En esto, realizamos una iteración de la clave del diccionario y verificamos la presencia de cualquier clave requerida y realizamos la eliminación en consecuencia.

# Python3 code to demonstrate working of 
# Remove Disjoint Tuple keys from Dictionary
# Using loop
  
# initializing dictionary
test_dict = {('Gfg', 3) : 4, ('is', 6) : 2, ('best', 10) : 3, ('for', 9) : 'geeks'}
  
# printing original dictionary
print("The original dictionary : " + str(test_dict))
  
# initializing List 
rem_list = [9, 'is']
  
# Remove Disjoint Tuple keys from Dictionary
# Using loop
res = dict()
for idx in test_dict:
    if idx[0] not in rem_list and idx[1] not in rem_list:
        res[idx] = test_dict[idx]
  
# printing result 
print("Dictionary after removal : " + str(res)) 
Producción :

El diccionario original: {(‘Gfg’, 3): 4, (‘best’, 10): 3, (‘for’, 9): ‘geeks’, (‘is’, 6): 2}
Diccionario después de la eliminación : {(‘Gfg’, 3): 4, (‘mejor’, 10): 3}

Método #2: Usarset() + dictionary comprehension + isdisjoint()
La combinación de las funciones anteriores también se puede usar para resolver este problema. En esto, realizamos la tarea de comparación usando isdisjoint().

# Python3 code to demonstrate working of 
# Remove Disjoint Tuple keys from Dictionary
# Using set() + dictionary comprehension + isdisjoint()
  
# initializing dictionary
test_dict = {('Gfg', 3) : 4, ('is', 6) : 2, ('best', 10) : 3, ('for', 9) : 'geeks'}
  
# printing original dictionary
print("The original dictionary : " + str(test_dict))
  
# initializing List 
rem_list = [9, 'is']
  
# Remove Disjoint Tuple keys from Dictionary
# Using set() + dictionary comprehension + isdisjoint()
res = {keys: val for keys, val in test_dict.items() if set(keys).isdisjoint(rem_list)}
  
# printing result 
print("Dictionary after removal : " + str(res)) 
Producción :

El diccionario original: {(‘Gfg’, 3): 4, (‘best’, 10): 3, (‘for’, 9): ‘geeks’, (‘is’, 6): 2}
Diccionario después de la eliminación : {(‘Gfg’, 3): 4, (‘mejor’, 10): 3}

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 *