Em Python, como é que se obtém o último elemento de uma lista?
some_list[-1]
é o mais curto e o mais pítonico.
Na verdade, você pode fazer muito mais com esta sintaxe. A sintaxe some_list[-n]
recebe o n-ésimo ao último elemento. Então some_list[-1]
recebe o último elemento, some_list[-2]
recebe o segundo para durar, etc, até some_list[-len(some_list)]
, o que lhe dá o primeiro elemento.
Também é possível definir os elementos da lista desta forma. Por exemplo:
>>> 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]
Note que obter uma lista de itens por índice irá levantar um IndexError
se o item esperado não existir. Isto significa que some_list[-1]
irá levantar uma exceção se some_list
estiver vazio, porque uma lista vazia não pode ter um último elemento.
Se seus objetos str()
ou list()
podem acabar ficando vazios como tal: astr = ''
ou alist = []
, então você pode querer utilizar alist[-1:]
em vez de alist[-1]
para o objeto "sameeness".
O significado disto é:
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
Onde a distinção a ser feita é que retornar um objeto de lista vazia ou um objeto de strings vazios é mais como um "último elemento" do que um objeto de exceção.
Você também pode fazer:
alist.pop()
Depende do que você quer fazer com sua lista porque o método pop()
irá apagar o último elemento.