Python | Ordenar diccionarios de Python por clave o valor

En este artículo, discutiremos cómo ordenamos un diccionario por valor y claves en Python .

Necesidad de ordenar en el diccionario

Necesitamos clasificar los datos para reducir la complejidad de los datos y hacer que las consultas sean más rápidas y eficientes. Por lo tanto, la clasificación es muy importante cuando se trata de una gran cantidad de datos. Aquí, utilizaremos el siguiente enfoque:

  • Primero, ordene las claves alfabéticamente usando key_value. función iterkeys() .
  • En segundo lugar, ordene las claves alfabéticamente usando la función sorted (key_value) e imprima el valor correspondiente.
  • Tercero, ordene los valores alfabéticamente usando key_value. iteritems() , clave = lambda (k, v) : (v, k))

Estas son las tareas principales que se deben realizar: ordenar un diccionario por valor y claves en Python.

  1. Cree un diccionario y muestre sus claves de lista en orden alfabético.
  2. Muestra tanto las claves como los valores ordenados alfabéticamente por clave.
  3. Igual que la parte (ii), pero ordenados alfabéticamente por el valor.

Ejemplo 1: mostrar las claves en orden ordenado

En este ejemplo, estamos tratando de ordenar el diccionario por claves y valores en Python. Aquí, iterkeys() devuelve un iterador sobre las claves del diccionario.

Input:
key_value[2] = '56'       
key_value[1] = '2'
key_value[4] = '12'
key_value[5] = '24'
key_value[6] = '18'
key_value[3] = '323'

Output:
1 2 3 4 5 6 

Python3

# Function calling
def dictionairy():
    # Declare hash function
    key_value = {}
 
# Initializing value
    key_value[2] = 56
    key_value[1] = 2
    key_value[5] = 12
    key_value[4] = 24
    key_value[6] = 18
    key_value[3] = 323
 
    print("Task 1:-\n")
 
    print("key_value", key_value)
 
    # iterkeys() returns an iterator over the
    # dictionary’s keys.
    for i in sorted(key_value.keys()):
        print(i, end=" ")
 
 
def main():
    # function calling
    dictionairy()
 
 
# Main function calling
if __name__ == "__main__":
    main()

Producción:

Task 1:-

key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323}

1 2 3 4 5 6 

Ejemplos 2: Ordenar el diccionario por clave 

En este ejemplo, ordenaremos en orden lexicográfico Tomando el tipo de clave como una string.

Input:
key_value['ravi'] = '10'       
key_value['rajnish'] = '9'
key_value['sanjeev'] = '15'
key_value['yash'] = '2'
key_value'suraj'] = '32'

Output:
[('rajnish', '9'), ('ravi', '10'), ('sanjeev', '15'), ('suraj', '32'), ('yash', '2')]

Python3

# Creates a sorted dictionary (sorted by key)
from collections import OrderedDict
 
dict = {'ravi': '10', 'rajnish': '9',
        'sanjeev': '15', 'yash': '2', 'suraj': '32'}
dict1 = OrderedDict(sorted(dict.items()))
print(dict1)

Producción:

OrderedDict([('rajnish', '9'), ('ravi', '10'), ('sanjeev', '15'), ('suraj', '32'), ('yash', '2')])

Ejemplo 3: ordenar las claves y los valores en orden alfabético usando la clave

En este ejemplo, estamos tratando de ordenar el diccionario por claves y valores en Python. Aquí estamos usando un iterador sobre el valor del Diccionario para ordenar las claves.

Input:
key_value[2] = '56'       
key_value[1] = '2'
key_value[4] = '12'
key_value[5] = '24'
key_value[6] = '18'
key_value[3] = '323'

Output:
(1, 2) (2, 56) (3, 323) (4, 24) (5, 12) (6, 18) 

Python3

# function calling
def dictionairy():
 
    # Declaring the hash function
    key_value = {}
 
# Initialize value
    key_value[2] = 56
    key_value[1] = 2
    key_value[5] = 12
    key_value[4] = 24
    key_value[6] = 18
    key_value[3] = 323
     
    print("key_value",key_value)
 
    print("Task 2:-\nKeys and Values sorted in",
          "alphabetical order by the key  ")
     
 
    # sorted(key_value) returns an iterator over the
    # Dictionary’s value sorted in keys.
    for i in sorted(key_value):
        print((i, key_value[i]), end=" ")
 
 
def main():
        # function calling
    dictionairy()
 
 
# main function calling
if __name__ == "__main__":
    main()

Producción:

key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323}
Task 2:-
Keys and Values sorted in alphabetical order by the key  
(1, 2) (2, 56) (3, 323) (4, 24) (5, 12) (6, 18) 

Ejemplo 4: ordenar las claves y los valores en orden alfabético usando el valor

En este ejemplo, estamos tratando de ordenar el diccionario por claves y valores en Python. Aquí estamos usando para ordenar en orden lexicográfico.

Input:
key_value[2] = '56'       
key_value[1] = '2'
key_value[4] = '12'
key_value[5] = '24'
key_value[6] = '18'
key_value[3] = '323'

Output:
[(1, 2), (5, 12), (6, 18), (4, 24), (2, 56), (3, 323)]

Python3

# Function calling
def dictionairy():
 
    # Declaring hash function
    key_value = {}
 
# Initializing the value
    key_value[2] = 56
    key_value[1] = 2
    key_value[5] = 12
    key_value[4] = 24
    key_value[6] = 18
    key_value[3] = 323
     
    print("key_value",key_value)
 
    print("Task 3:-\nKeys and Values sorted",
          "in alphabetical order by the value")
 
    # Note that it will sort in lexicographical order
    # For mathematical way, change it to float
    print(sorted(key_value.items(), key=lambda kv:
                 (kv[1], kv[0])))
 
 
def main():
    # function calling
    dictionairy()
 
 
# main function calling
if __name__ == "__main__":
    main()

Producción:

key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323}
Task 3:-
Keys and Values sorted in alphabetical order by the value
[(1, 2), (5, 12), (6, 18), (4, 24), (2, 56), (3, 323)]

Ejemplo 5: Ordenar diccionario por valor en Python

En este ejemplo, estamos tratando de ordenar el diccionario por valores en Python. Aquí estamos usando la comprensión del diccionario para ordenar nuestros valores.

Input:
key_value['ravi'] = 10       
key_value['rajnish'] = 9
key_value['sanjeev'] = 15
key_value['yash'] = 2
key_value'suraj'] = 32

Output:
{'ravi': 2, 'rajnish': 9, 'sanjeev': 10, 'yash': 15, 'suraj': 32}

Python3

# Creates a sorted dictionary (sorted by key)
from collections import OrderedDict
 
dict = {'ravi': 10, 'rajnish': 9,
        'sanjeev': 15, 'yash': 2, 'suraj': 32}
print(dict)
 
sorted_value_index = np.argsort(dict.values())
dictionary_keys = list(dict.keys())
sorted_dict = {dictionary_keys[i]: sorted(
    dict.values())[i] for i in range(len(dictionary_keys))}
 
print(sorted_dict)

Producción:

{'ravi': 10, 'rajnish': 9, 'sanjeev': 15, 'yash': 2, 'suraj': 32}
{'ravi': 2, 'rajnish': 9, 'sanjeev': 10, 'yash': 15, 'suraj': 32}

Publicación traducida automáticamente

Artículo escrito por Tanmay_Jain 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 *