Diccionario de clasificación de Python por valor

Diccionario de clasificación de Python por valor
En Python, un diccionario se refiere a una colección desordenada de elementos en forma de pares de valores clave.

Los diccionarios son útiles al almacenar datos mapeados ya que cada clave está asociada con su valor correspondiente.

Aunque los diccionarios no están en orden, los diccionarios se clasifican usando orden de inserción En versiones recientes de Python.

Aprendamos cómo podemos ordenar un diccionario basado en valores.

Función ordenada de pitón

Podemos usar el ordenado () función para ordenar un diccionario por valor. La sintaxis de la función se muestra en lo siguiente:

ordenado (iterable, clave = ninguno, reverso = falso)

Los parámetros de la función se muestran a continuación:

  1. itreable - se refiere a un objeto iterable, como un diccionario, una lista, etc.
  2. llave - se refiere a una función que funciona como la clave para el tipo
  3. contrarrestar - permite que la función ordene el iterable en orden inverso

Podemos usar la función ordenada para ordenar un diccionario por valor, como se muestra en el siguiente ejemplo:

db =
'Mysql': 1000,
'PostgreSQL': 20000,
'MongoDB': 250,
'Sqlite': 100,
'Redis': 5000

sorted_values ​​= sorted (db.elementos (), clave = lambda x: x [1], reverso = true)

En el código de ejemplo anterior, comenzamos creando el diccionario que deseamos clasificar. El diccionario contiene el tipo de base de datos como la clave y el número de registros como valor.

Luego usamos el ordenado () función para ordenar los elementos en nuestro diccionario. Finalmente, el db.itmes La función nos permite obtener los valores del diccionario como una lista de Iterable.

Esto elimina la necesidad de que hagamos referencia a los valores por las posiciones de índice.

Proporcionamos una función anónima en el parámetro clave que nos permite ordenar los valores de la lista.

Dado que queremos que nuestros datos se clasifiquen de más grande a más pequeño, establecemos el parámetro inverso en "verdadero".

Ahora, el código anterior debe devolver una lista con los valores ordenados. Para acceder a los elementos, podemos usar el siguiente código para el bucle:

para i en sorted_values:

Imprimir (I [0], I [1])

Aquí, índice 0 de la lista representa la clave del diccionario, mientras que índice 1 representa el valor.

El código anterior debe devolver como se muestra a continuación:

PostgreSQL 20000
Redis 5000
Mysql 1000
MongoDB 250
Sqlite 100

Función de ordenar con itemGetter

El módulo de operador de Python nos proporciona el itemGetter () función y nos permite obtener un objeto llamable que obtenga un elemento del operando especificado.

En términos simples, el itemgetter (n) la función creará un objeto invocable y obtendrá el enésimo elemento (índice).

Por ejemplo:

operador.itemGetter (3) ('ABCDEFG')

La función anterior obtendrá el elemento en el tercer índice de la cadena proporcionada. La función funciona con cualquier objeto iterable, como listas, tuplas, diccionarios, etc.

Podemos combinar el itemGetter () función para ordenar los valores en un diccionario, como se muestra en el siguiente ejemplo:

Desde el operador importar itemgetter
tup = sorted (db.elementos (), clave = itemGetter (1))
sorted_values ​​= clave: valor para la clave, valor en tup
print (sorted_values)

Comenzamos importando la función itemgetter desde el módulo de operador en el código anterior.

A continuación, usamos el db.elementos() función para obtener los pares de valor clave como una lista de tuplas. Para obtener solo los valores, usamos la función itemgetter y pasamos el índice de 1 como parámetro.

Esto debería devolver los valores del diccionario.

Una vez que hayamos ordenado la lista, podemos iterar sobre ella y crear un nuevo diccionario a partir de los valores ordenados.

Esto debería devolver un diccionario ordenado como se muestra en lo siguiente:

'Sqlite': 100, 'MongoDB': 250, 'MySQL': 1000, 'Redis': 5000, 'PostgreSQL': 20000

Tenga en cuenta que el orden en esto está en orden ascendente.

Conclusión

Este artículo muestra los métodos para clasificar un diccionario por valores. Utilizando el ordenado () función, puede establecer el parámetro inverso en "falso" para ordenar el diccionario en orden ascendente.