Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/12/2012, 14:59
robertol18
 
Fecha de Ingreso: diciembre-2012
Mensajes: 3
Antigüedad: 11 años, 5 meses
Puntos: 0
Problema para ordenar listas en python

Que tal amigos, estoy empezando a programar en python tengo un inconveniente, con ordenar una serie de registros traídos de un archivo de texto.
Formato archivo txt:
Código:
Periodo|Ajuste Cierre
1|388.39 
2|385.39 
3|376.84
7|392.46
23|416.11
Con el siguiente algoritmo leo las líneas del txt y separo en listas de tipo string:

Código Python:
Ver original
  1. def cargar_txt(self): #Abre un archivo, lee y regresa un arreglo
  2.     archivo = open( self.path )
  3.         renglones = archivo.readlines()
  4.         renglones = [a.replace('\n', '') for a in renglones]
  5.         arreglo = map( lambda x: x.split('|'), renglones )
  6.         return arreglo
  7.         archivo.close()

Código Python:
Ver original
  1. print arreglo --> [ ['5|345.76'],['3|322.56'],['8|344.23'],['1|234.45'] ]

El problema es que aquí no puedo ordenar la lista arreglo por periodo, ya que los datos guardados son tipo string, y quiero que ordene como entero ascendentemente.
- Luego convierto los campos guardados en la lista a entero(periodo) y float ( ajuste de cierre), el problema que tengo es que no puedo ordenarlos de manera ascendente por periodo.
Es para la creación de un sistema de proyección lineal, necesito tener estos valores ordenados.
Código Python:
Ver original
  1. def on_btn_semana_clicked(self, widget, data=None):
  2.         self.path = str(self.b.get_object('path_entry').get_text())
  3.         matriz = self.cargar_txt()
  4.         print matriz
  5.         for periodo, ajuste_cierre in matriz:
  6.             periodo = int(periodo)
  7.             ajuste_cierre = float(ajuste_cierre)
  8.             self.campos = [periodo, ajuste_cierre]
  9.             print 'Periodo: %d  Ajuste de Cierre: %f ' % (periodo,ajuste_cierre)
--->
Código:
Periodo: 1	Ajuste de Cierre: 388.390000 
Periodo: 2	Ajuste de Cierre: 385.390000 
Periodo: 3	Ajuste de Cierre: 376.840000 
Periodo: 7	Ajuste de Cierre: 392.460000 
Periodo: 23 Ajuste de Cierre: 416.110000
Muchas gracias por su atención y agradesco mucho su ayuda, saludos!

Última edición por razpeitia; 02/12/2012 a las 16:27 Razón: Resaltado de sintaxis