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, discutiremos 10 formas diferentes de ordenar el diccionario de Python por claves y también ordenar de manera inversa por claves.
Usando sorted() y keys():
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:
Input: my_dict = {'c':3, 'a':1, 'd':4, 'b':2} Output: a: 1 b: 2 c: 3 d: 4
Python3
# Initialising a dictionary my_dict = {'c':3, 'a':1, 'd':4, 'b':2} # Sorting dictionary sorted_dict = my_dict.keys() sorted_dict = sorted(sorted_dict) # Printing sorted dictionary print("Sorted dictionary using sorted() and keys() is : ") for key in sorted_dict: print(key,':', my_dict[key])
Sorted dictionary using sorted() and keys() is : a : 1 b : 2 c : 3 d : 4
Usando sorted() y items():
El método items() se usa para devolver la lista con todas las claves del diccionario con valores. Devuelve un objeto de vista que muestra una lista del par de tuplas (clave, valor) de un diccionario determinado. sorted() se usa para ordenar las claves del diccionario.
Ejemplos:
Input: my_dict = {2:'three', 1:'two', 4:'five', 3:'four'} Output: 1 'two' 2 'three' 3 'Four' 4 'Five'
Python3
# Initialising dictionary my_dict = {2: 'three', 1: 'two', 4: 'five', 3: 'four'} # Sorting dictionary sorted_dict = sorted(my_dict.items()) # Printing sorted dictionary print("Sorted dictionary using sorted() and items() is :") for k, v in sorted_dict: print(k, v)
Sorted dictionary using sorted() and items() is : 1 two 2 three 3 four 4 five
Usando sorted() y keys() en una sola línea:
Aquí, usamos sorted() y keys() en una sola línea.
Ejemplos:
Input: my_dict = {'c':3, 'a':1, 'd':4, 'b':2} Output: Sorted dictionary is : ['a','b','c','d']
Python3
# Initialising a dictionary my_dict = {'c': 3, 'a': 1, 'd': 4, 'b': 2} # Sorting dictionary sorted_dict = sorted(my_dict.keys()) # Printing sorted dictionary print("Sorted dictionary is : ", sorted_dict)
Sorted dictionary is : ['a', 'b', 'c', 'd']
Usando sorted() y items() en una sola línea
Aquí, usamos sorted() y items() en una sola línea.
Ejemplos:
Input: my_dict = {'red':'#FF0000', 'green':'#008000', 'black':'#000000', 'white':'#FFFFFF'} Output: Sorted dictionary is : black :: #000000 green :: #008000 red :: #FF0000 white :: #FFFFFF
Python3
# Initialising a dictionary my_dict = {'red': '#FF0000', 'green': '#008000', 'black': '#000000', 'white': '#FFFFFF'} # Sorting dictionary in one line sorted_dict = dict(sorted(my_dict .items())) # Printing sorted dictionary print("Sorted dictionary is : ") for elem in sorted(sorted_dict.items()): print(elem[0], " ::", elem[1])
Sorted dictionary is : black ::#000000 green ::#008000 red ::#FF0000 white ::#FFFFFF
Usando una función lambda
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 convierte en tipo en un diccionario.
Ejemplos:
Input: my_dict = {'a': 23, 'g': 67, 'e': 12, 45: 90} Output: Sorted dictionary using lambda is : {'e': 12, 'a': 23, 'g': 67, 45: 90}
Python3
# Initialising a dictionary my_dict = {'a': 23, 'g': 67, 'e': 12, 45: 90} # Sorting dictionary using lambda function sorted_dict = dict(sorted(my_dict.items(), key=lambda x: x[1])) # Printing sorted dictionary print("Sorted dictionary using lambda is : ", sorted_dict)
Sorted dictionary using lambda is : {'e': 12, 'a': 23, 'g': 67, 45: 90}
6. Usando json:
Python no permite clasificar un diccionario. Pero al convertir el diccionario a un JSON, puede ordenarlo explícitamente para que el JSON resultante se ordene por claves. Esto es cierto para el diccionario multidimensional.
Ejemplos:
Input: my_dict = {"b": 2, "c": 3, "a": 1,"d":4} Output: Sorted dictionary is : {"a": 1, "b": 2, "c": 3,"d":4}
Python3
# Importing json import json # Initialising a dictionary my_dict = {"b": 2, "c": 3, "a": 1,"d":4} # Sorting and printind in a single line print("Sorted dictionary is : ", json.dumps(my_dict, sort_keys=True))
Sorted dictionary is : {"a": 1, "b": 2, "c": 3, "d": 4}
Usando pprint
El módulo pprint de Python en realidad ya ordena los diccionarios por clave. El módulo pprint proporciona la capacidad de «imprimir de forma bonita» estructuras de datos arbitrarias de Python en un formulario que se puede usar como entrada para el intérprete.
Ejemplos:
Input: my_dict = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0} Output: Sorted dictionary is : {0: 0, 1: 2, 2: 1, 3: 4, 4: 3}
Python3
# Importing pprint import pprint # Initialising a dictionary my_dict = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0} # Sorting and printing in a single line print("Sorted dictionary is :") pprint.pprint(my_dict)
Uso de colecciones y OrderedDict
OrderedDict es 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:
Input: my_dict = {"b": 2, "c": 3, "a": 1,"d":4}1} Output: OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4)])
Python
# Importing OrderedDict from collections import OrderedDict # Initialising a dictionary my_dict = {"b": 2, "c": 3, "a": 1,"d":4} # Sorting dictionary sorted_dict = OrderedDict(sorted(my_dict.items())) # Printing sorted dictionary print(sorted_dict)
OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4)])
Usando sortedcontainers y SortedDict :
El dictado ordenado es una asignación mutable ordenada en la que las claves se mantienen ordenadas. El dictado ordenado es un mapeo mutable ordenado. El dict ordenado hereda de dict para almacenar elementos y mantiene una lista ordenada de claves. Para esto, necesitamos instalar sortedcontainers.
sudo pip install sortedcontainers
Ejemplos:
Input: my_dict = {"b": 2, "c": 3, "a": 1,"d":4} Output: {"a": 1, "b": 2, "c": 3,"d":4}
Python3
# Importing SortedDict from sortedcontainers import SortedDict # Initialising a dictionary my_dict = {"b": 2, "c": 3, "a": 1,"d":4} # Sorting dictionary sorted_dict = SortedDict(my_dict) # Printing sorted dictionary print(sorted_dict)
Producción:
SortedDict({'a': 1, 'b': 2, 'c': 3, 'd': 4})
Usando clase y función
Ejemplos:
Input: {"b": 2, "c": 3, "a": 1,"d":4} Output: {"a": 1, "b": 2, "c": 3,"d":4}
Python3
class SortedDisplayDict(dict): def __str__(self): return "{" + ", ".join("%r: %r" % (key, self[key]) for key in sorted(self)) + "}" # Initialising dictionary and calling class my_dict = SortedDisplayDict({"b": 2, "c": 3, "a": 1,"d":4}) # Printing dictionary print(my_dict)
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
Diccionario de clasificación inversa por claves
Ejemplos:
Input: my_dict = {"b": 2, "c": 3, "a": 1,"d":4} Output: Sorted dictionary is : ['a','b','c','d']
Python3
# Initialising a dictionary my_dict = {"b": 2, "c": 3, "a": 1,"d":4} # Reverse sorting a dictionary sorted_dict = sorted(my_dict, reverse=True) # Printing dictionary print("Sorted dictionary is :") for k in sorted_dict: print(k,':',my_dict[k])
Sorted dictionary is : d : 4 c : 3 b : 2 a : 1
Publicación traducida automáticamente
Artículo escrito por venniladeenan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA