Python – Diccionario de extracción de pares iguales

Mientras trabajamos con un diccionario de Python, se nos permite crear un nuevo diccionario del diccionario existente que tenga una tupla como clave. Deseamos crear un diccionario de claves singleton con claves solo donde ambos elementos del par son iguales. Esto puede tener aplicaciones en muchos dominios. Analicemos ciertas formas en que se puede realizar esta tarea. 

Método #1: Usar bucle

Esta es una forma bruta en la que se puede realizar esta tarea. En esto, iteramos para cada elemento del diccionario de tuplas y comparamos la igualdad para crear un nuevo diccionario. 

Python3

# Python3 code to demonstrate working of
# Extract Equal Pair Dictionary
# Using loop
 
# initializing dictionary
test_dict = {(1, 1): 4, (2, 3): 6, (3, 3): 7, (5, 2): 10, (2, 2): 11}
 
# printing original dictionary
print(& quot
       The original dictionary is : & quot
       + str(test_dict))
 
# Extract Equal Pair Dictionary
# Using loops
res = dict()
for key, val in test_dict.items():
    if key[0] == key[1]:
        res[key[0]] = val
 
# printing result
print(& quot
       The dictionary after equality testing : & quot
       + str(res))
Salida: El diccionario original es: {(5, 2): 10, (2, 2): 11, (2, 3): 6, (1, 1): 4, (3, 3): 7} El diccionario después de la prueba de igualdad: {1: 4, 2: 11, 3: 7}

Método #2: Usando la comprensión del diccionario:

Esta es otra forma más en la que se puede realizar esta tarea. En esto, usamos la comprensión del diccionario en lugar del bucle para proporcionar taquigrafía. 

Python3

# Python3 code to demonstrate working of
# Extract Equal Pair Dictionary
# Using dictionary comprehension
 
# initializing dictionary
test_dict = {(1, 1): 4, (2, 3): 6, (3, 3): 7, (5, 2): 10, (2, 2): 11}
 
# printing original dictionary
print(& quot
       The original dictionary is : & quot
       + str(test_dict))
 
# Extract Equal Pair Dictionary
# Using dictionary comprehension
res = {idx[0]: j for idx, j in test_dict.items() if idx[0] == idx[1]}
 
# printing result
print(& quot
       The dictionary after equality testing : & quot
       + str(res))
Salida: El diccionario original es: {(5, 2): 10, (2, 2): 11, (2, 3): 6, (1, 1): 4, (3, 3): 7} El diccionario después de la prueba de igualdad: {1: 4, 2: 11, 3: 7}

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 *