Python – Claves Valores igual frecuencia

Dado un diccionario, cuente las instancias donde las claves son iguales a los valores.

Entrada : test_dict = {5:5, 8:9, 7:8, 1:2, 10:10, 4:8} 
Salida : 2 
Explicación : en 2 instancias, las claves son iguales a los valores.

Entrada : test_dict = {5:4, 8:9, 7:8, 1:2, 10:10, 4:8} 
Salida : 1 
Explicación : en 1 instancia, la clave es igual al valor. 

Método #1: Usar bucle

En esto, contamos las instancias en las que las claves son iguales a los valores e incrementamos el contador en consecuencia.

Python3

# Python3 code to demonstrate working of
# Keys Values equal frequency
# Using loop
  
# initializing dictionary
test_dict = {5: 5, 8: 9, 7: 7, 1: 2, 10: 10, 4: 8}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
res = 0
for key in test_dict:
  
    # checking for equality and incrementing counter
    if key == test_dict[key]:
        res += 1
  
# printing result
print("The required frequency : " + str(res))
Producción

The original dictionary is : {5: 5, 8: 9, 7: 7, 1: 2, 10: 10, 4: 8}
The required frequency : 3

Método #2: Usando sum() + comprensión de lista

En esto, la tarea de contar se realiza usando sum(), cuando se encuentran valores-clave iguales, 1 se agrega a la lista y luego, al final, se suma cada valor.

Python3

# Python3 code to demonstrate working of
# Keys Values equal frequency
# Using sum() + list comprehension
  
# initializing dictionary
test_dict = {5: 5, 8: 9, 7: 7, 1: 2, 10: 10, 4: 8}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# computing summation to get frequency
res = sum([1 for key in test_dict if key == test_dict[key]])
  
# printing result
print("The required frequency : " + str(res))
Producción

The original dictionary is : {5: 5, 8: 9, 7: 7, 1: 2, 10: 10, 4: 8}
The required frequency : 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 *