[Python-es] ordenar lista bidimensional por una columna dada

Marcos Sánchez Provencio rapto en arrakis.es
Mar Nov 26 10:53:04 CET 2002


sort permite usar una función de comparación, ¿no te vale?

Help on built-in function sort:

sort(...)
    L.sort([cmpfunc]) -- sort *IN PLACE*; if given, cmpfunc(x, y) -> -1,
0, 1

Sólo tienes que usar una función tipo:

def comparaCol2(x,y):
  return cmp(x[1:],y[1:])

y ordenar con:

sort(sec1,comparaCol2)

Eso sí, es más lento que el sort sin más.


El lun, 25-11-2002 a las 19:27, César González escribió:
> Hola a todos,
> 
> Tengo un problema al que me gustaría dar una solución lo más sencilla posible 
> ya que es algo que, en el proyecto que estoy haciendo, voy a tener que 
> repetir hasta la saciedad. La pregunta es la siguiente :
> 
> ¿Cual es la manera mas sencilla de ordenar un lista bidimensional a partir de 
> una columna dada?
> 
> El metodo sort de las listas, me ordena listas unidimensionales y no encuentro 
> la manera (si la hay) de usar sort para, por ejemplo, pasarle el indice de la 
> columna que marca el orden y así ordenar listas de más de una dimension.
> 
> Antes de tirarme a hacer una clase que haga esto (que a mi entender es algo 
> muy comun y que muchos antes que yo habrán tenido el mismo problema) he 
> preferido preguntaros si conoceis una solución mas sencilla.
> 
> Gracias,
> 
> Bolo.
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo.py/python-es
-- 
Marcos Sánchez Provencio <rapto en arrakis.es>





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