Python | Ordenar claves de diccionario para listar

A veces, deseamos aplanar el diccionario en una lista, el aplanamiento simple es relativamente más fácil, pero cuando deseamos alinear claves y valores de forma ordenada, es decir, ordenados por valor, entonces se convierte en un problema bastante complejo. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.º 1: usar sum() + sorted() + items()+ lambda
La combinación de las funciones anteriores se puede usar para realizar esta tarea en particular. En esto, primero ordenamos el diccionario por claves para el orden deseado usando sorted(), luego las claves y los valores se extraen mediante items() funciones que se devuelven como pares por la función lambda. La función de suma hace la tarea de llenar la tupla.

# Python3 code to demonstrate working of
# Sort dictionary keys to list 
# Using sum() + sorted() + items() + lambda
  
# initializing dictionary
test_dict = {'Geeks' : 2, 'for' : 1, 'CS' : 3}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# Using sum() + sorted() + items() + lambda
# Sort dictionary keys to list 
res = list(sum(sorted(test_dict.items(), key = lambda x:x[1]), ()))
  
# printing result 
print("List after conversion from dictionary : " + str(res))
Producción :

The original dictionary is : {'Geeks': 2, 'for': 1, 'CS': 3}
List after conversion from dictionary : ['for', 1, 'Geeks', 2, 'CS', 3]

Método #2: Usar chain() + sorted() + items()+ lambda
Este método también es similar al método anterior, la única diferencia es que la construcción de la lista final se realiza mediante el método de string que reduce el paso intermedio de conversión a tupla y realiza toda la tarea en tiempo lineal .

# Python3 code to demonstrate working of
# Sort dictionary keys to list 
# Using chain() + sorted() + items() + lambda
from itertools import chain
  
# initializing dictionary
test_dict = {'Geeks' : 2, 'for' : 1, 'CS' : 3}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# Using chain() + sorted() + items() + lambda
# Sort dictionary keys to list 
res = list(chain(*sorted(test_dict.items(), key = lambda x: x[1])))
  
# printing result 
print("List after conversion from dictionary : " + str(res))
Producción :

The original dictionary is : {'Geeks': 2, 'for': 1, 'CS': 3}
List after conversion from dictionary : ['for', 1, 'Geeks', 2, 'CS', 3]

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 *