Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: metalost en 26 Febrero 2018, 01:01 am



Título: Python Ordenar diccionarios ¿listas?
Publicado por: metalost en 26 Febrero 2018, 01:01 am
Código
  1. #-*-coding:utf-8-*-
  2. import time
  3. id1=0
  4. alumnos={}
  5.  
  6. def agregar():
  7. global id1,alumnos
  8. id1+=1
  9. nomb=raw_input("Ingrese el nombre del alumno n"+str(id1)+": ")
  10. ntot=0.0
  11. notasA=[]
  12. for x1 in range(0,4):
  13. notas1=int(input("Ingrese nota n"+str(x1+1)+": "))
  14. ntot+=notas1
  15. notasA.append(notas1)
  16. ntot=(ntot/4)
  17. alumnos[id1]=[nomb,ntot,notasA]
  18.  
  19. def ordenar():
  20. global alumnos
  21. print alumnos.sort()
  22.  
  23. def consultar(alumnos):
  24. for x in alumnos:
  25. print "N"+str(x),"Nombre: "+alumnos[x][0],"Promedio: "+str(alumnos[x][1])
  26.  
  27. while True:
  28. print"""
  29.  
  30. ############# Opcion 1: Agregar     #############
  31. ############# Opcion 2: Consultar   #############
  32. ############# Opcion 3: Cerrar      #############
  33. """
  34. opc=int(input("Elija la opcion que desea: "))
  35.  
  36. if opc==1:
  37. agregar()
  38. elif opc==2:
  39. ordenar()
  40. consultar(alumnos)
  41. elif opc==3:
  42. print alumnos
  43. break
  44. else:
  45. print ""
  46. print ""
  47. print "Opcion Invalida por favor vuelva a intentarlo cuando salga la pantalla"
  48. time.sleep(3)
  49. print ""
  50. print ""
  51.  


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


Título: Re: Python Ordenar diccionarios ¿listas?
Publicado por: Yidu en 27 Febrero 2018, 18:24 pm
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