Pregunta Método para ordenar una lista de listas?


Tengo una lista de listas (no pueden ser tuplas ya que tengo que generarla dinámicamente) y está estructurada como una lista de listas de un int y un float Like like:

[[1,1.0345],[2,5.098],[3,4.89],[2,5.97]]

Quiero ordenarlo, pero solo he logrado obtener la función de clasificación integrada para ordenarlo por el primer elemento de la lista o no hacer nada, pero tengo que ordenarlos por el segundo elemento de la lista y no lo hago Quiero implementar mi propia función de clasificación. Entonces, un ejemplo de lo que quiero es:

[[1,1.0345],[3,4.89],[2,5.098],[2,5.97]]

¿Podría alguien decirme cómo obtener una de las funciones de clasificación integradas para hacer esto?


9
2018-03-05 02:19


origen


Respuestas:


Pasa el key argumento.

L.sort(key=operator.itemgetter(1))

19
2018-03-05 02:22



>>> l = [[1,1.0345],[2,5.098],[3,4.89],[2,5.97]]
>>> l.sort(key=lambda x: x[1])
>>> l
[[1, 1.0345], [3, 4.8899999999999997], [2, 5.0979999999999999], [2, 5.9699999999999998]]

11
2018-03-05 02:24



¿Qué hay de usar el parámetro clave de los ordenados ...

sorted_list = sorted([[1,1.0345],[3,4.89],[2,5.098],[2,5.97]], key=lambda x: x[1])

Esto le dice a python que ordene la lista de listas usando el ítem en el índice 1 de cada lista como la clave para la comparación.


3
2018-03-05 02:22