Cómo ordenar tuplas no por clave sino por el valor de la clave

Vamos a construir una lista de tuplas con la forma (valor,clave) para luego ordenarlo usando la cláusula sorted.

dic = {'llave1':20, 'llave3':3, 'llave2':233}
ordenar = sorted(dic.items())
 
for x,y in sorted(dic.items()):
   print(x,y)

Lo anterior nos mostrará el resultado ordenado por clave, es decir; llave1, 2 y 3 respectivamente:

Pero si lo que queremos es ordenar por el valor entonces debemos organizar nuestro código así:

dic = {'llave1':20, 'llave3':3, 'llave2':233}
lista = list()
 
for x,y in dic.items():
   lista.append((y,x))
 
lista = sorted(lista, reverse=False)
 
for x,y in lista:
   print(x,y)

Y obtendremos un resultado como este:

En caso de querer ordenar de mayor a menor solo bastaría con cambiar reverse=False por reverse=True

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *