El problema de obtener solo el diccionario adecuado que tiene un valor particular de la clave correspondiente es bastante común cuando uno comienza a trabajar con el diccionario. Analicemos ciertas formas en que se puede realizar esta tarea.
Método n.º 1: Usar bucle
Este es el método de fuerza bruta mediante el cual se puede realizar esta tarea. Para esto, solo usamos la verificación ingenua y comparamos y devolvemos el resultado una vez que encontramos la coincidencia adecuada y rompemos para el resto de los diccionarios.
# Python3 code to demonstrate working of # Find dictionary matching value in list # Using loop # Initialize list test_list = [{'gfg' : 2, 'is' : 4, 'best' : 6}, {'it' : 5, 'is' : 7, 'best' : 8}, {'CS' : 10}] # Printing original list print("The original list is : " + str(test_list)) # Using loop # Find dictionary matching value in list res = None for sub in test_list: if sub['is'] == 7: res = sub break # printing result print("The filtered dictionary value is : " + str(res))
The original list is : [{'is': 4, 'gfg': 2, 'best': 6}, {'is': 7, 'best': 8, 'it': 5}, {'CS': 10}] The filtered dictionary value is : {'is': 7, 'best': 8, 'it': 5}
Método n.º 2: usar next()
+ comprensión del diccionario
La combinación de estos métodos también se puede usar para realizar esta tarea. Esta diferencia es que es de una sola línea y más eficiente ya que la siguiente función usa el iterador como implementación interna, que es más rápido que los métodos genéricos.
# Python3 code to demonstrate working of # Find dictionary matching value in list # Using next() + dictionary comprehension # Initialize list test_list = [{'gfg' : 2, 'is' : 4, 'best' : 6}, {'it' : 5, 'is' : 7, 'best' : 8}, {'CS' : 10}] # Printing original list print("The original list is : " + str(test_list)) # Using next() + dictionary comprehension # Find dictionary matching value in list res = next((sub for sub in test_list if sub['is'] == 7), None) # printing result print("The filtered dictionary value is : " + str(res))
The original list is : [{'is': 4, 'gfg': 2, 'best': 6}, {'is': 7, 'best': 8, 'it': 5}, {'CS': 10}] The filtered dictionary value is : {'is': 7, 'best': 8, 'it': 5}
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