Python – Ordenar diccionarios por tamaño

Dada una lista de diccionarios, ordene por tamaño de diccionario.

Entrada : lista_prueba = [{4:6, 9:1, 10:2, 2:8}, {4:3, 9:1}, {3:9}, {1:2, 9:3, 7: 4}] 
Salida : [{3: 9}, {4: 3, 9: 1}, {1: 2, 9: 3, 7: 4}, {4: 6, 9: 1, 10: 2, 2 : 8}] 
Explicación : 1 < 2 < 3 < 4, ordenados por número de teclas del diccionario.

Entrada : lista_prueba = [{4:3, 9:1}, {3:9}, {1:2, 9:3, 7:4}] 
Salida : [{3: 9}, {4: 3, 9 : 1}, {1: 2, 9: 3, 7: 4}] 
Explicación : 1 < 2 < 3, ordenados por número de teclas del diccionario. 

Método #1: Usando len() + sort()

En esto, la clasificación se realiza usando sort() y len() se usa para obtener el tamaño del diccionario.

Python3

# Python3 code to demonstrate working of
# Sort Dictionaries by Size
# Using len() + sort()
  
# function to get length
def get_len(sub):
  
    # return length
    return len(sub)
  
  
# initializing list
test_list = [{4: 6, 9: 1, 10: 2, 2: 8}, {
    4: 3, 9: 1}, {3: 9}, {1: 2, 9: 3, 7: 4}]
  
# printing original lists
print("The original list is : " + str(test_list))
  
# performing inplace sort of list
test_list.sort(key=get_len)
  
# printing result
print("Sorted List : " + str(test_list))

Producción:

La lista original es: [{4: 6, 9: 1, 10: 2, 2: 8}, {4: 3, 9: 1}, {3: 9}, {1: 2, 9: 3, 7 : 4}]
Lista ordenada: [{3: 9}, {4: 3, 9: 1}, {1: 2, 9: 3, 7: 4}, {4: 6, 9: 1, 10: 2 , 2: 8}]

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

Aquí, realizamos la tarea de ordenar usando sorted() , y la función lambda se usa en lugar de la función externa para resolver el problema de obtener la longitud.

Python3

# Python3 code to demonstrate working of
# Sort Dictionaries by Size
# Using sorted() + len() + lambda
  
# initializing list
test_list = [{4: 6, 9: 1, 10: 2, 2: 8}, {
    4: 3, 9: 1}, {3: 9}, {1: 2, 9: 3, 7: 4}]
  
# printing original lists
print("The original list is : " + str(test_list))
  
# performing sort using sorted(), lambda for filtering
res = sorted(test_list, key=lambda sub: len(sub))
  
# printing result
print("Sorted List : " + str(res))

 Producción:

La lista original es: [{4: 6, 9: 1, 10: 2, 2: 8}, {4: 3, 9: 1}, {3: 9}, {1: 2, 9: 3, 7 : 4}]
Lista ordenada: [{3: 9}, {4: 3, 9: 1}, {1: 2, 9: 3, 7: 4}, {4: 6, 9: 1, 10: 2 , 2: 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 *