Python – Filtrar diccionarios con valores ordenados

Dada la lista de diccionarios, la tarea es escribir un programa en Python para filtrar los diccionarios con valores en orden creciente, es decir, ordenados.

Ejemplos:

Entrada : test_list = [{‘gfg’: 2, ‘is’: 8, ‘good’: 10}, {‘gfg’: 1, ‘for’: 10, ‘geeks’: 9}, {‘love’: 3, ‘gfg’: 4}] 
Salida : [{‘gfg’: 2, ‘is’: 8, ‘good’: 10}, {‘love’: 3, ‘gfg’: 4}] 
Explicación : 2, 8, 10 están en orden creciente.
 

Entrada : test_list = [{‘gfg’: 2, ‘is’: 8, ‘good’: 10}, {‘gfg’: 1, ‘for’: 10, ‘geeks’: 9}, {‘love’: 4, ‘gfg’: 3}] 
Salida : [{‘gfg’: 2, ‘is’: 8, ‘good’: 10}] 
Explicación : 2, 8, 10 están en orden creciente. 

Método n. ° 1: usar sorted() + valores() + comprensión de lista

En esto, realizamos la tarea de ordenar usando sorted() y extrayendo valores usando values(), la comprensión de listas se usa para realizar la iteración de todos los diccionarios.

Python3

# Python3 code to demonstrate working of
# Filter dictionaries with ordered values
# Using sorted() + values() + list comprehension
  
# initializing list
test_list = [{'gfg': 2, 'is': 8, 'good': 10},
             {'gfg': 1, 'for': 10, 'geeks': 9},
             {'love': 3, 'gfg': 4}]
  
# printing original list
print("The original list is : " + str(test_list))
  
# sorted to check with ordered values
# values() extracting dictionary values
res = [sub for sub in test_list if sorted(
    list(sub.values())) == list(sub.values())]
  
# printing result
print("The filtered Dictionaries : " + str(res))

Producción:

La lista original es: [{‘gfg’: 2, ‘is’: 8, ‘good’: 10}, {‘gfg’: 1, ‘for’: 10, ‘geeks’: 9}, {‘love’ : 3, ‘gfg’: 4}]
Los diccionarios filtrados: [{‘gfg’: 2, ‘is’: 8, ‘good’: 10}, {‘love’: 3, ‘gfg’: 4}]

Método #2: Usar filter() + lambda + sorted()

En esto, realizamos la tarea de filtrar usando filter(), y la función lambda se usa para realizar la tarea de inyectar la funcionalidad necesaria para verificar valores crecientes.

Python3

# Python3 code to demonstrate working of
# Filter dictionaries with ordered values
# Using filter() + lambda + sorted()
  
# initializing list
test_list = [{'gfg': 2, 'is': 8, 'good': 10},
             {'gfg': 1, 'for': 10, 'geeks': 9},
             {'love': 3, 'gfg': 4}]
  
# printing original list
print("The original list is : " + str(test_list))
  
# sorted to check with ordered values
# values() extracting dictionary values
# filter() and lambda function used to filter
res = list(filter(lambda sub: sorted(list(sub.values()))
                  == list(sub.values()), test_list))
  
# printing result
print("The filtered Dictionaries : " + str(res))

Producción:

La lista original es: [{‘gfg’: 2, ‘is’: 8, ‘good’: 10}, {‘gfg’: 1, ‘for’: 10, ‘geeks’: 9}, {‘love’ : 3, ‘gfg’: 4}]
Los diccionarios filtrados: [{‘gfg’: 2, ‘is’: 8, ‘good’: 10}, {‘love’: 3, ‘gfg’: 4}]

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 *