Posts | Tags | Categories | Archive

Último item de un iterable

Algunas veces necesitamos obtener el último item de un iterador. Para ello se suele iterar hasta agotar el iterador:

1
2
3
4
for it in iterador:
     pass

last_item = it  

Una alternativa que se ve bastante es convertir previamente el iterable en una lista:

1
last_item = list(iterador)[-1]

Tiene el incoveniente de gastar recursos inultilmente al crear una lista de la que sólo nos interesa su último elemento.

En stackoverflow se pueden ver algunas respuestas a este problema, pero ninguna me convence lo suficiente.

Aquí pongo mi solución, simple y elegante donde las haya:

1
last_item = max(enumerate(iterador))[1]

With category Python:

© Chema Cortés. Built using Pelican. Theme is subtle by Carey Metcalfe. Based on svbhack by Giulio Fidente.