Cómo ordenar el diccionario por clave en Python
-
Diccionario Python para ordenar por clave con el método
dict.keys()
-
Diccionario Python para ordenar por clave con el método
dict.items()
-
Python ordena el diccionario por clave con el método
OrderedDict()
- Ordenar el diccionario en orden inverso en Python
- Diccionario de ordenación de Python con método de función de tecla personalizada
El diccionario Python es el mismo que la tabla hash que guarda las entradas evaluando los hashes de las teclas, y la secuencia de las entradas es imposible de anticipar. Este artículo introducirá cómo ordenar el diccionario por clave en Python.
Diccionario Python para ordenar por clave con el método dict.keys()
Usemos el siguiente diccionario como ejemplo.
dict = {"hello": 56, "at": 23, "test": 43, "this": 43}
La salida del dict.keys()
es
dict_keys(["hello", "at", "test", "this"])
Podríamos hacer un nuevo diccionario ordenado a partir de esta lista de llaves no ordenadas.
sorted(dict.keys())
Resultado:
['at', 'hello', 'test', 'this']
Aplicamos repetidamente la clasificación en esta lista ordenada seleccionando cada entrada del diccionario.
for key in sorted(dict.keys()):
print(key, " :: ", dict[key])
Resultado:
at :: 23
hello :: 56
test :: 43
this :: 43
Diccionario Python para ordenar por clave con el método dict.items()
También podemos ordenar un diccionario por clave en Python con el método dict.items()
.
¿Generará una lista que contenga pares clave-valor?
dict.items()
Resultado:
dict_items([('hello', 56), ('at', 23), ('test', 43), ('this', 43)])
Podríamos hacer una lista ordenada por la siguiente función. Ordenará las entradas del diccionario según los valores de las claves.
sorted(dict.keys())
Resultado:
['at', 'hello', 'test', 'this']
Ahora para producir el par llave-valor del diccionario, usamos el siguiente código.
for elem in sorted(dict.items()):
print(elem[0], " ::", elem[1])
Resultado:
at :: 23
hello :: 56
test :: 43
this :: 43
En términos de complejidad, es más poderoso que el enfoque anterior. Ya que no necesitamos comprobar el valor de la clave después de ordenar la lista iterable, como en dict.key()
.
Python ordena el diccionario por clave con el método OrderedDict()
Alternativamente, podemos ordenar los elementos del diccionario por valor clave usando el módulo collections
.
import collections
d = {2: 13, 1: 9, 4: 25, 3: 0}
result = collections.OrderedDict(sorted(d.items()))
print(result)
Resultado:
OrderedDict([(1, 9), (2, 13), (3, 0), (4, 25)])
Ordenar el diccionario en orden inverso en Python
Anteriormente, clasificamos los elementos del diccionario en orden ascendente. Ahora discutimos algunas formas de ordenar los elementos del diccionario en orden descendente.
La sintaxis es:
sorted(iterable_sequence, reverse=True)
El siguiente código ordenó y revirtió los elementos del diccionario.
dict = {"hello": 56, "at": 23, "test": 43, "this": 43}
for elem in sorted(dict.items(), reverse=True):
print(elem[0], " ::", elem[1])
El parámetro reverse=true
asegura que el diccionario ordenado se invierte.
Resultado:
this :: 43
test :: 43
hello :: 56
at :: 23
Diccionario de ordenación de Python con método de función de tecla personalizada
Este método ordenará los elementos del diccionario usando la longitud de la cadena key
.
sorted(iterable_sequence, key=Function)
La función lambda
que devuelve el tamaño de la cadena se le da al parámetro key
.
listofTuples = sorted(dict.items() , key=lambda x: len (x[0] ) )
for elem in listofTuples :
print(elem[0] , " ::" , elem[1] )
Resultado:
at :: 23
test :: 43
this :: 43
hello :: 56
Artículo relacionado - Python Dictionary
- Cómo comprobar si existe una clave en un diccionario en Python
- Convertir un diccionario en una lista en Python
- Cómo obtener todos los archivos de un directorio
- Cómo encontrar el valor máximo en el Diccionario Python
- Cómo ordenar un diccionario Python por valor
- Cómo fusionar dos diccionarios en Python 2 y 3