Prerrequisito: Diccionarios en Python
Un diccionario es una colección desordenada, modificable e indexada. En Python , los diccionarios se escriben con corchetes y tienen claves y valores. Podemos acceder a los valores del diccionario usando claves. En este artículo, se analizan 10 formas diferentes de ordenar el diccionario de Python por valores y también la ordenación inversa por valores.
Uso de la función lambda junto con items() y sorted() : la función lambda devuelve la clave (elemento 0 ) para una tupla de elemento específica. Cuando se pasan al método sorted() , devuelve una secuencia ordenada que luego se escribe -casted en un diccionario . El método keys() devuelve un objeto de vista que muestra una lista de todas las claves del diccionario . sorted() se usa para ordenar las claves del diccionario .
Ejemplos:
Entrada: my_dict = {2: ‘tres’, 1: ‘dos’}
Salida: [(2, ‘tres’), (1, ‘dos’)]
A continuación se muestra la implementación utilizando la función lambda:
Python3
# Python program to sort dictionary # by value using lambda function # Initialize a dictionary my_dict = {2: 'three', 1: 'two'} # Sort the dictionary sorted_dict = sorted( my_dict.items(), key = lambda kv: kv[1]) # Print sorted dictionary print("Sorted dictionary is :", sorted_dict)
Sorted dictionary is : [(2, 'three'), (1, 'two')]
Uso de elements() solo : el método elements() se usa solo con dos variables, es decir, clave y valor para ordenar el diccionario por valor.
Ejemplos:
Entrada: my_dict = {‘c’: 3, ‘a’: 1, ‘d’: 4, ‘b’: 2}
Salida: [(1, ‘a’), (2, ‘b’), (3 , ‘c’), (4, ‘d’)]
A continuación se muestra la implementación usando el método items():
Python3
# Python program to sort dictionary # by value using item function # Initialize a dictionary my_dict = {'c': 3, 'a': 1, 'd': 4, 'b': 2} # Sorting dictionary sorted_dict = sorted([(value, key) for (key, value) in my_dict.items()]) # Print sorted dictionary print("Sorted dictionary is :") print(sorted_dict)
Sorted dictionary is : [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
Usando sorted() y get() : El método get() devuelve el valor de la clave dada, si está presente en el diccionario. Si no, devolverá None .
Ejemplos:
Entrada: my_dict = {‘red’:’#FF0000′, ‘green’:’#008000′, ‘black’:’#000000′, ‘white’:’#FFFFFF’}
Salida:
negro #000000
verde #008000
rojo #FF0000
blanco #FFFFFF
A continuación se muestra la implementación utilizando los métodos sorted() y get():
Python3
# Python program to sort dictionary # by value using sorted() and get() # Initialize a dictionary my_dict = {'red': '# FF0000', 'green': '# 008000', 'black': '# 000000', 'white': '# FFFFFF'} # Sort and print dictionary print("Sorted dictionary is :") for w in sorted(my_dict, key = my_dict.get): print(w, my_dict[w])
Sorted dictionary is : black # 000000 green # 008000 red # FF0000 white # FFFFFF
Usando itemgetter del operador :
El método itemgetter(n) construye un invocable que asume un objeto iterable como entrada y extrae el n-ésimo elemento de él.
Ejemplos
Entrada:
my_dict = {‘a’: 23, ‘g’: 67, ‘e’: 12, 45: 90}
Salida:
[(‘e’, 12), (‘a’, 23), (‘g’ , 67), (45, 90)]
A continuación se muestra el programa python para ordenar el diccionario usando itemgetter():
Python3
# Python program to sort dictionary # by value using itemgetter() function # Importing OrderedDict import operator # Initialize a dictionary my_dict = {'a': 23, 'g': 67, 'e': 12, 45: 90} # Sorting dictionary sorted_dict = sorted(my_dict.items(), \ key = operator.itemgetter(1)) # Printing sorted dictionary print("Sorted dictionary is :") print(sorted_dict)
Sorted dictionary is : [('e', 12), ('a', 23), ('g', 67), (45, 90)]
Uso de OrderedDict de colecciones : OrderedDictes una clase de biblioteca estándar, que se encuentra en el módulo de colecciones . OrderedDict mantiene las órdenes de las claves tal como se insertan.
Ejemplos:
Entrada: my_dict = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
Salida: [(0, 0), (2, 1), (1, 2), (4, 3 ), (3, 4)]
A continuación se muestra la implementación utilizando Ordered Dict:
Python3
# Python program to sort dictionary # by value using OrderedDict # Import OrderedDict from collections import OrderedDict # Initialize a dictionary my_dict = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0} # Sort dictionary sorted_dict = OrderedDict(sorted(\ my_dict.items(), key = lambda x: x[1])) # Print the sorted dictionary print("Sorted dcitonary is :") print(sorted_dict)
Sorted dcitonary is : OrderedDict([(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)])
Uso de Counter from collections : el contador es una colección desordenada donde los elementos se almacenan como claves Dict y su cuenta como valor dict. El recuento de elementos de contador puede ser enteros positivos, cero o negativos.
Ejemplos:
Entrada: my_dict = {‘hola’: 1, ‘python’: 5, ‘mundo’: 3}
Salida: [(‘hola’, 1), (‘mundo’, 3), (‘python’, 5)]
A continuación se muestra la implementación utilizando Counter from collections:
Python3
# Python program to sort dictionary # by value using OrderedDict # Import Counter from collections import Counter # Initialize a dictionary my_dict = {'hello': 1, 'python': 5, 'world': 3} # Sort and print the dictionary sorted_dict = Counter(my_dict) print("Sorted dictionary is :") print(sorted_dict.most_common()[::-1])
Sorted dictionary is : [('hello', 1), ('world', 3), ('python', 5)]
Diccionario de clasificación inversa por valores : la misma sintaxis para la clasificación ordenada ascendente y descendente. Para la ordenación inversa, la idea es usar reverse = true. con la función sorted() .
Ejemplos:
Entrada:
my_dict = {‘red’:’#FF0000′,
‘green’:’#008000′,
‘black’:’#000000′,
‘white’:’#FFFFFF’}
Salida:
negro #000000
verde #008000
rojo #FF0000
blanco #FFFFFF
A continuación se muestra la implementación utilizando el diccionario de clasificación inversa por valores:
Python3
# Python program to sort dictionary # by value using sorted setting # reverse parameter to true # Initialize a dictionary my_dict = {'red': '# FF0000', 'green': '# 008000', 'black': '# 000000', 'white': '# FFFFFF'} # Sort and print the dictionary print("Sorted dictionary is :") for w in sorted(my_dict, key = my_dict.get, \ reverse = True): print(w, my_dict[w])
Sorted dictionary is : white # FFFFFF red # FF0000 green # 008000 black # 000000
Publicación traducida automáticamente
Artículo escrito por venniladeenan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA