Python Ordenar diccionarios ¿listas?

Iniciado por metalost, 26 Febrero 2018, 01:01 AM

0 Miembros y 1 Visitante están viendo este tema.

metalost

Código (python) [Seleccionar]

#-*-coding:utf-8-*-
import time
id1=0
alumnos={}

def agregar():
global id1,alumnos
id1+=1
nomb=raw_input("Ingrese el nombre del alumno n"+str(id1)+": ")
ntot=0.0
notasA=[]
for x1 in range(0,4):
notas1=int(input("Ingrese nota n"+str(x1+1)+": "))
ntot+=notas1
notasA.append(notas1)
ntot=(ntot/4)
alumnos[id1]=[nomb,ntot,notasA]

def ordenar():
global alumnos
print alumnos.sort()

def consultar(alumnos):
for x in alumnos:
print "N"+str(x),"Nombre: "+alumnos[x][0],"Promedio: "+str(alumnos[x][1])

while True:
print"""

############# Opcion 1: Agregar     #############
############# Opcion 2: Consultar   #############
############# Opcion 3: Cerrar      #############
"""
opc=int(input("Elija la opcion que desea: "))

if opc==1:
agregar()
elif opc==2:
ordenar()
consultar(alumnos)
elif opc==3:
print alumnos
break
else:
print ""
print ""
print "Opcion Invalida por favor vuelva a intentarlo cuando salga la pantalla"
time.sleep(3)
print ""
print ""



Crei que con el .sort podria hacerlo, pero... Que podria aplicar o hacer para que pueda ordenar todos los datos segun por ejemplo el promedio

Yidu

Buenas,

Yo probaria a usar el modulo collections. Este ya viene incluido con Python. Para un script que estaba haciendo tambien necesitaba ordenar un diccionario. Pero creo que no se puede. Algo parecido pasa con los conjuntos (sets). En todo caso, al ordenar un diccionario, te devuelve en una tupla o lista. Aunque mejor que pruebes con el enlace que te paso. Ahi te lo explican mejor. Un saludo!

http://python-para-impacientes.blogspot.com.es/2015/04/con-ordereddict-el-orden-ha-llegado.html