Python | Encuentra el valor coincidente del diccionario en la lista

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))
Producción :

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))
Producción :

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *