[Python-es] duda sobre el metodo sort

Milton Galo Patricio Inostroza Aguilera minoztro en gmail.com
Vie Mayo 23 16:02:17 CEST 2008


2008/5/23 Otto Machado <ottomachado en infomed.sld.cu>:
> Hola amigos

Hola Otto

>
> Tengo un diccionario donde las llaves son del tipo fecha: '2005/6/1', ahora

seguro que es tipo fecha?...yo lo que veo es ahí es un string con un
formato específico.

> bien, necesito ordenar la lista de las keys() con el sort, pero al
> ordenarlas me sucede que al compararlo como string me lo ordena asi por
> ejemplo:['2005/6/1','2005/6/13', '2005/6/15', '2005/6/2', '2005/6/6'],

Creo que es mejor almacenar un objeto de tipo fecha en tu llave de diccionario

>>> Dict = {}
>>> Dict[datetime(2008,10,30)] = 1
>>> Dict[datetime(2008,9,30)] = 2
>>> Dict[datetime(2008,8,30)] = 3
>>> Dict[datetime(2008,7,30)] = 4
>>> Dict
{datetime.datetime(2008, 8, 30, 0, 0): 3, datetime.datetime(2008, 10,
30, 0, 0): 1, datetime.datetime(2008, 7, 30, 0, 0): 4,
datetime.datetime(2008, 9, 30, 0, 0): 2}
>>> key = Dict.keys()
>>> print key
[datetime.datetime(2008, 8, 30, 0, 0), datetime.datetime(2008, 10, 30,
0, 0), datetime.datetime(2008, 7, 30, 0, 0), datetime.datetime(2008,
9, 30, 0, 0)]
>>> key.sort()
>>> print key
[datetime.datetime(2008, 7, 30, 0, 0), datetime.datetime(2008, 8, 30,
0, 0), datetime.datetime(2008, 9, 30, 0, 0), datetime.datetime(2008,
10, 30, 0, 0)]



> supongo que sea porque primer digito del 13 es el 1 y lo compara con el 6 y
> es menor, ahora bien probe poniendo una lista del tipo '2005/06/01'y si lo
> hace bien pero es que yo uso para conformar la fecha la función
> fromtimestamp de datetime y accedo al campo year= 2005, month=6 o day=1, y
> esta lo devuelve asi.
> Que me aconsejan?.

Fijate que a utilizar un objeto puedo acceder luego a todos sus
métodos...quizás el día de mañana puedas necesitar sacar otra
información de tu llave de tipo fecha y si lo haces como un string eso
se te volverá un infierno.

> Gracias
> Diana
>
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>



-- 
Milton Inostroza Aguilera


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