Python - [solucionado] ordenar un diccionario por su clave o valor en Python

 
Vista:
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

[solucionado] ordenar un diccionario por su clave o valor en Python

Publicado por xve (1646 intervenciones) el 21/11/2015 14:07:24
Aquí os muestro a modo de recordatorio como ordenar un diccionario de Python...

Por su clave:
1
2
3
4
5
6
import operator
miDic={"a":2, "b":3, "d":1, "c":1}
resultado = sorted(miDic.items(), key=operator.itemgetter(0))
print resultado
 
[('a', 2), ('b', 3), ('c', 1), ('d', 1)]


Por su valor:
1
2
3
4
5
6
import operator
miDic={"a":2, "b":3, "d":1, "c":1}
resultado = sorted(miDic.items(), key=operator.itemgetter(1))
print resultado
 
[('c', 1), ('d', 1), ('a', 2), ('b', 3)]

Si deseamos cambiar el orden...
1
2
3
4
resultado.reverse()
print resultado
 
[('b', 3), ('a', 2), ('d', 1), ('c', 1)]
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

[solucionado] ordenar un diccionario por su clave o valor en Python

Publicado por Cero (1 intervención) el 10/06/2016 17:36:02
hola, me ha solventado un problema que tenía, pero veo que devuelve una lista, en lugar de un nuevo diccionario. ¿Sería posible que el resultado fuera también un diccionario?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 3
Ha disminuido su posición en 20 puestos en Python (en relación al último mes)
Gráfica de Python

[solucionado] ordenar un diccionario por su clave o valor en Python

Publicado por Matias (1 intervención) el 09/10/2018 01:11:19
En primer instancia aparentemente no pero lo que podes hacer es recorrer la lista resultante con un for each.

la idea seria algo asi...

1
2
3
4
5
6
7
8
9
10
11
12
13
import operator
miDic={"a":2, "b":3, "d":1, "c":1}
mi_nuevo_dic = {}
resultado = sorted(miDic.items(), key=operator.itemgetter(0))
## O resultado = sorted(miDic.items(), key=operator.itemgetter(1)) dependediendo de por que lo quieras ordenar
 
for item in resultado:
## Entre llaves se ingresa la nueva clave que se obtiene de cada elemento de la lista resultante
## y se pide el elemento 0 de cada uno que correspondería a la clave
    nueva_clave = item[0]
## Mientras que en la tupla la posicion 1 guarda la informacion correspondiente al valor
    nuevo_valor = item[1]
    mi_nuevo_dic [nueva_clave] = nuevo_valor

Espero que lo hayas podido solucionar en el momento.

Contesto unicamente para que el post este bien cerrado. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar