¿Cómo obtengo el último elemento de una lista?

Resuelto Janusz asked hace 15 años • 26 respuestas

¿Cómo obtengo el último elemento de una lista? ¿Qué camino se prefiere?

alist[-1]
alist[len(alist) - 1]
Janusz avatar May 31 '09 02:05 Janusz
Aceptado

some_list[-1]es el más corto y pitónico.

De hecho, puedes hacer mucho más con esta sintaxis. La some_list[-n]sintaxis obtiene el enésimo al último elemento. Entonces some_list[-1]obtiene el último elemento, some_list[-2]obtiene el penúltimo, etc., hasta llegar a some_list[-len(some_list)], lo que le da el primer elemento.

También puede configurar elementos de la lista de esta manera. Por ejemplo:

>>> some_list = [1, 2, 3]
>>> some_list[-1] = 5 # Set the last element
>>> some_list[-2] = 3 # Set the second to last element
>>> some_list
[1, 3, 5]

Tenga en cuenta que obtener un elemento de la lista por índice generará un error IndexErrorsi el elemento esperado no existe. Esto significa que some_list[-1]generará una excepción si some_listestá vacía, porque una lista vacía no puede tener un último elemento.

Sasha Chedygov avatar May 30 '2009 19:05 Sasha Chedygov

Si sus objetos str()o list()pueden terminar vacíos como así: astr = ''o alist = [], entonces es posible que desee usarlos alist[-1:]en lugar de alist[-1]para la "igualdad" del objeto.

El significado de esto es:

alist = []
alist[-1]   # will generate an IndexError exception whereas 
alist[-1:]  # will return an empty list
astr = ''
astr[-1]    # will generate an IndexError exception whereas
astr[-1:]   # will return an empty str

Donde la distinción que se hace es que devolver un objeto de lista vacío o un objeto str vacío es más parecido a un "último elemento" que a un objeto de excepción.

DevPlayer avatar Nov 09 '2010 23:11 DevPlayer

También puedes hacer:

last_elem = alist.pop()

Depende de lo que quieras hacer con tu lista porque el pop()método eliminará el último elemento.

Taurus Olson avatar May 30 '2009 22:05 Taurus Olson

La forma más sencilla de mostrar el último elemento en Python es

>>> list[-1:] # returns indexed value
    [3]
>>> list[-1]  # returns value
    3

Hay muchos otros métodos para lograr ese objetivo, pero estos son breves y sencillos de utilizar.

Atul Arvind avatar Aug 20 '2012 17:08 Atul Arvind