Henter det siste elementet i en liste

Hvordan finner du det siste elementet i en liste i Python?

Løsning

some_list[-1] er den korteste og mest pythonske.

Faktisk kan du gjøre mye mer med denne syntaksen. Syntaksen some_list[-n] henter det nest siste elementet. Så some_list[-1] får det siste elementet, some_list[-2] får det nest siste osv., helt ned til some_list[-len(some_list)], som gir deg det første elementet.

Du kan også angi listeelementer på denne måten. For eksempel:

>>> 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]

Merk at henting av et listeelement etter indeks vil utløse en IndexError hvis det forventede elementet ikke finnes. Dette betyr at some_list[-1] vil utløse et unntak hvis some_list er tom, fordi en tom liste ikke kan ha et siste element.

Kommentarer (0)

Hvis str() eller list()-objektene dine kan ende opp med å være tomme som så: astr = '' eller alist = [], kan det være lurt å bruke alist[-1:] i stedet for alist[-1] for objektets "likhet".

Betydningen av dette er:

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

Forskjellen er at det å returnere et tomt listeobjekt eller et tomt str-objekt er mer "last element"-aktig enn et unntaksobjekt.

Kommentarer (6)

Du kan også gjøre det:

alist.pop()

Det avhenger av hva du vil gjøre med listen, for metoden pop() sletter det siste elementet.

Kommentarer (0)