Dado un diccionario, cuente las instancias en las que la posición del elemento del diccionario sea igual a la clave o el valor. Válido para Py >= 3.6 [Introducción al ordenamiento de diccionarios].
Entrada : test_dict = {5:3, 2:3, 10:4, 7:3, 8:1, 9:5}
Salida : 2
Explicación : en la posición 3 y 5, los valores son 3 y 5.Entrada : test_dict = {5:3, 2:3, 10:4, 8:1, 9:5}
Salida : 1
Explicación : en la quinta posición, el valor es 5.
Método #1: Usar bucle
En esto, iteramos para cada elemento del diccionario y probamos cada elemento para verificar si alguna posición es igual a la clave o el valor del diccionario, si lo encontramos, iteramos el contador.
Python3
# Python3 code to demonstrate working of # Count if dictionary position equals key or value # Using loop # initializing dictionary test_dict = {5: 3, 1: 3, 10: 4, 7: 3, 8: 1, 9: 5} # printing original dictionary print("The original dictionary is : " + str(test_dict)) res = 0 test_dict = list(test_dict.items()) for idx in range(0, len(test_dict)): # checking for key or value equality if idx == test_dict[idx][0] or idx == test_dict[idx][1]: res += 1 # printing result print("The required frequency : " + str(res))
The original dictionary is : {5: 3, 1: 3, 10: 4, 7: 3, 8: 1, 9: 5} The required frequency : 3
Método #2: Usando sum() + comprensión de lista
En esto, asignamos 1 a cada caso en el que el índice del diccionario se encuentra igual a cualquiera de sus elementos, luego realizamos la suma de la lista usando sum().
Python3
# Python3 code to demonstrate working of # Count if dictionary position equals key or value # Using sum() + list comprehension # initializing dictionary test_dict = {5: 3, 1: 3, 10: 4, 7: 3, 8: 1, 9: 5} # printing original dictionary print("The original dictionary is : " + str(test_dict)) test_dict = list(test_dict.items()) # sum() computing sum for filtered cases res = sum([1 for idx in range(0, len(test_dict)) if idx == test_dict[idx][0] or idx == test_dict[idx][1]]) # printing result print("The required frequency : " + str(res))
The original dictionary is : {5: 3, 1: 3, 10: 4, 7: 3, 8: 1, 9: 5} 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