Ordenación de elementos de una lista.

Andres Moya Andres.Moya en hispalinux.es
Mie Ene 5 17:00:35 CET 2005


Rasta Popoulus wrote:

> Hola, el problema es que me han mandado un ejercicio en el que tengo 
> que ordenar las fechas introducidos en una lista vacia de menor a 
> mayor. Tengo la parte de la introducción de las fechas, pero no se 
> como hacerlo para que me las ordene. esto es lo que tengo hecho:
>
> #Programa principal
> #Creamos el vector vacio
> lsita=[]
> leerListaFecha(lista)


Para ordenar una lista, normalmente basta con llamar al método sort:

  lista.sort()

Lo que pasa es que para poder ordenar, el método sort debe saber cómo 
comparar dos elementos de la lista para saber cuál es mayor y cuál 
menor. En tu caso puedes hacer dos cosas, escribir una función y 
pasarsela como parámetro al sort, o bien definir el método __cmp__ de tu 
clase (yo haría esto último):

class TFecha(record):
  [...]
  def __cmp__(self, otra):
      # compara self con otra, y devuelve
      #   -1 si self < otra
      #    0 si self == otra
      #    1 si self > otra

Ahora tienes que pensar cómo comparar un TFecha con otro ;)

Lo que no entiendo es lo del 'record'. Entiendo que ese no es un módulo 
estándar de Python, ¿no? ¿Es algo que ha hecho tu profesor?

-- 
Andres.Moya en hispalinux.es




Más información sobre la lista de distribución Python-es