Python – Clasificación de listas dentro de listas

En algún código python reciente que estaba jugando con que tenía la necesidad de clasificar un montón de listas basadas en elementos dentro de sus elementos. Afortunadamente python incorporado en función de clasificación es un montón de gran alcance y nos permite hacer esto de una manera bastante fácil. Así por ejemplo, si tenemos una lista de todos cuyos elementos también se enumera:

 mylist = [["derp", 1, 7], ["bleh", 2, 0], ["merp", 0, 3]] 

Por defecto, cuando llamamos a la función de clasificación en esta lista se ordenará las sublistas en base a su primer elemento en el orden lexicográfico. Por ejemplo:

 mylist.sort () /> 
[['bleh', 2, 0], ['derp', 1, 7], ['merp', 0, 3]]

¿Qué pasa si no queremos ordenar estas listas en función de su primer elemento, aunque? Mediante el uso de la tecla argumento podemos ordenar nuestras listas secundarias en función de cualquier elemento que queremos. Por ejemplo, para ordenar las listas en función de su segundo elemento usaríamos:

 mylist.sort (clave = lambda e: e [1]) print /> 
[['merp', 0, 3], ['derp', 1, 7], ["bleh", 2, 0]]

O su tercer elemento:

 mylist.sort (clave = lambda e: e [2]) /> 
[['bleh', 2, 0], ['MERP', 0, 3], ['derp', 1, 7]]

Un agradecimiento especial a la gente más en el # python en freenode para ayudar a resolver esto poco cabo. Ellos son un grupo muy ingenioso. Usted puede aprender más acerca de cómo trabajar con listas de python aquí.

Saludos,
~ Jeff Hoogland

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *