Slice bei Listen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

Montag 4. August 2003, 12:04

Hallo,


Warum ergibt

Code: Alles auswählen

wert=["040111","040121","040131","040141","040151","040161"]
print wert[1:-1]
['040121', '040131', '040141', '040151']
und nicht
['040121', '040131', '040141', '040151', '040161']
wenn doch

Code: Alles auswählen

wert=["040111","040121","040131","040141","040151","040161"]
print wert[-1:]
['040161']
ergibt?
Warum wird beim ersten Beispiel das letzte Item nicht ausgegeben und beim zweiten Beispiel schon, obwohl die Eingabe [-1] gleich ist?

Harry
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Montag 4. August 2003, 13:02

Hi HarrH,

das liegt daran, daß bei einem Slice [startindex:endindex] alles von einscließlich [startindex] bis ausschließlich (also mit ohne) [endindex] zurückgegeben wird.

[-1:] bedeutet nimm alle vom einschliesslich Letzten bis zum Ende der Liste und das ist eben ganz was anderes als [:-1] was bedeutet nimm alle vom Anfang bis zum Vorgänger vom Letzten. Wenn Du einen Slize über alle Elemente erhalten willst, musst du [:] verwenden.

Gruß

Dookie
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

Montag 4. August 2003, 13:13

Alles klar. Jetzt verstehe ich das!

Vielen Dank!

Harry
Antworten