sábado, 31 de marzo de 2018

Receta Python 3 No. 1-14: Ordenar Objetos sin Soporte de Comparación Nativo

1. Problema

Ordenar objetos que pertenezca a una misma clase y que no cuenten nativamente con soporte para operaciones de comparación.

2. Solución

La función sorted() recibe como argumento una expresión que dicta cómo debe llevarse el ordenamiento de una lista de objetos a partir de un campo de identificación de éstos (Beazly, Jones, 2013).

3. Código Python 3


Prueba de ejecución:


[Usuario(13), Usuario(2), Usuario(11), Usuario(7)]
[Usuario(2), Usuario(7), Usuario(11), Usuario(13)]

[Usuario(2), Usuario(7), Usuario(11), Usuario(13)]


En la línea 14 se ordenan los elementos de la lista usuarios a partir de una expresión lambda que toma el campo id de la clase Usuario.



Otra forma de realizar el ordenamiento es por medio del operador attrgetter(): se especifica el campo de ordenamiento, para este caso el id.

4. Literatura & Enlaces

Beazly D, Jones B. K. (2013). Python Cookbook, Third Edition. United States: O'Reilly Media.

O

No hay comentarios:

Publicar un comentario

Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.