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.
- Cree un diccionario y muestre sus claves de lista en orden alfabético.
- Muestra tanto las claves como los valores ordenados alfabéticamente por clave.
- 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