Python: filtre los diccionarios por valores en Kth Key en la lista

Dada una lista de diccionarios, la tarea es escribir un programa de Python para filtrar diccionarios en función de los elementos de la clave Kth en la lista.

Ejemplos:

Entrada: test_list = [{«Gfg»: 3, «es»: 5, «mejor»: 10},

                           {«Gfg»: 5, «es»: 1, «mejor»: 1},

                           {«Gfg»: 8, «es»: 3, «mejor»: 9},

                           {«Gfg»: 9, «es»: 9, «mejor»: 8},

                           {«Gfg»: 4, «es»: 10, «mejor»: 7}], K = «mejor», search_list = [1, 9, 8, 4, 5]

Salida: [{‘Gfg’: 5, ‘es’: 1, ‘mejor’: 1}, {‘Gfg’: 8, ‘es’: 3, ‘mejor’: 9}, {‘Gfg’: 9, ‘es’: 9, ‘mejor’: 8}]

Explicación: se omiten los diccionarios con «mejor» como clave y valores distintos de 1, 9, 8, 4, 5.

Entrada: test_list = [{«Gfg»: 3, «es»: 5, «mejor»: 10},

                           {«Gfg»: 5, «es»: 1, «mejor»: 1},

                           {«Gfg»: 8, «es»: 3, «mejor»: 9}], K = «mejor», search_list = [1, 9, 4, 5]

Salida: [{‘Gfg’: 5, ‘es’: 1, ‘mejor’: 1}, {‘Gfg’: 8, ‘es’: 3, ‘mejor’: 9}]

Explicación: se omiten los diccionarios con «mejor» como clave y valores distintos de 1, 9, 4, 5.

Método n. ° 1: usar bucle + declaraciones condicionales 

En esto, los pares clave-valor se agregan al diccionario resultante después de verificar los valores de claves Kth en la lista usando condicionales, iterados usando un bucle.

Python3

# Python3 code to demonstrate working of
# Filter dictionaries by values in Kth Key in list
# Using loop + conditional statements
  
# initializing list
test_list = [{"Gfg": 3, "is": 5, "best": 10},
             {"Gfg": 5, "is": 1, "best": 1},
             {"Gfg": 8, "is": 3, "best": 9},
             {"Gfg": 9, "is": 9, "best": 8},
             {"Gfg": 4, "is": 10, "best": 7}]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing search_list
search_list = [1, 9, 8, 4, 5]
  
# initializing K
K = "best"
  
res = []
for sub in test_list:
  
    # checking if Kth key's value present in search_list
    if sub[K] in search_list:
        res.append(sub)
  
# printing result
print("Filtered dictionaries : " + str(res))

Producción:

La lista original es: [{‘Gfg’: 3, ‘is’: 5, ‘best’: 10}, {‘Gfg’: 5, ‘is’: 1, ‘best’: 1}, {‘Gfg’ : 8, ‘es’: 3, ‘mejor’: 9}, {‘Gfg’: 9, ‘es’: 9, ‘mejor’: 8}, {‘Gfg’: 4, ‘es’: 10, ‘ mejor’: 7}]

Diccionarios filtrados: [{‘Gfg’: 5, ‘is’: 1, ‘best’: 1}, {‘Gfg’: 8, ‘is’: 3, ‘best’: 9}, {‘Gfg’: 9 , ‘es’: 9, ‘mejor’: 8}]

Método #2: Usar la comprensión de listas

De manera similar al método anterior, la comprensión de listas se utiliza para proporcionar una abreviatura del método utilizado anteriormente.

Python3

# Python3 code to demonstrate working of
# Filter dictionaries by values in Kth Key in list
# Using list comprehension
  
# initializing list
test_list = [{"Gfg": 3, "is": 5, "best": 10},
             {"Gfg": 5, "is": 1, "best": 1},
             {"Gfg": 8, "is": 3, "best": 9},
             {"Gfg": 9, "is": 9, "best": 8},
             {"Gfg": 4, "is": 10, "best": 7}, ]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing search_list
search_list = [1, 9, 8, 4, 5]
  
# initializing K
K = "best"
  
# list comprehension as shorthand for solving problem
res = [sub for sub in test_list if sub[K] in search_list]
  
# printing result
print("Filtered dictionaries : " + str(res))

Producción:

La lista original es: [{‘Gfg’: 3, ‘is’: 5, ‘best’: 10}, {‘Gfg’: 5, ‘is’: 1, ‘best’: 1}, {‘Gfg’ : 8, ‘es’: 3, ‘mejor’: 9}, {‘Gfg’: 9, ‘es’: 9, ‘mejor’: 8}, {‘Gfg’: 4, ‘es’: 10, ‘ mejor’: 7}]

Diccionarios filtrados: [{‘Gfg’: 5, ‘is’: 1, ‘best’: 1}, {‘Gfg’: 8, ‘is’: 3, ‘best’: 9}, {‘Gfg’: 9 , ‘es’: 9, ‘mejor’: 8}]

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 *