ordenar lista bidimensional por una columna dada
César González
cesar en eureka-sistemas.com
Mar Nov 26 14:43:26 CET 2002
El Mar 26 Nov 2002 13:08, Chema Cortes escribió:
> > ¿Conoces algo como el sort de numeric pero que pueda tambien actuar sobre
> > arrays que contengan cadenas de texto?
>
> Si consideras que una matriz bidimensional es una lista de listas, estaba
bien dada la primera respuesta de Marcos:
> >>> a=[[4,"Hola"],[2,"Pepe"]]
> >>> a.sort(lambda x,y: cmp(x[0],y[0]))
> >>> a
>
> [[2, 'Pepe'], [4, 'Hola']]
>
>
> Si no te vale, pon el código.
[[25, 'informe1', 365, <DateTime object for '2002-11-26 00:00:00.00' at
8255e50>, 'Prueba1'],
[23, 'informe2', 87, <DateTime object for '2001-02-21 00:00:00.00' at
84ab730>, 'Prueba2']]
Este es un ejemplo de una lista de listas con las que tengo que tratar. Si le
paso la funcion sort que habeis propuesto casca debido a que en una columna
hay objetos DateTime, aun teniendo en cuenta que estoy buscando por la
columna 0 que son enteros sin mas...
tabla.sort(lambda x,y: cmp(x[0],y[0]))
File "pydoman.py", line 68, in <lambda>
tabla.sort(lambda x,y: cmp(x[0],y[0]))
TypeError: objects must be DateTime[Delta] instances
Segun veo me dice que los objetos DateTime tienen que ser incrementos de
tiempo no DateTimes a secas no?. ¿Por que el metodo sort no acepta fechas
absolutas? y si le estoy diciendo que ordene por una columna que es de tipo
entero... ¿por que se queja del DateTime? ¿Que tipos de datos acepta sort?
Gracias de nuevo,
Bolo.
Más información sobre la lista de distribución Python-es