Seite 1 von 1
Unklare Listen-Syntax
Verfasst: Donnerstag 28. August 2014, 09:49
von SG ;-)
Hallo, folgendes Problem:
ich bin gerade dabei, meine allerersten Versuche mit dem Python-Tutorial anzustellen, und schon stoße ich beim Umgang mit Listen auf etwas, das ich nicht verstehe:
Code: Alles auswählen
a = ['spam', 'eggs', 100, 1234]
print(a[-1])
print(a[1:-1])
a[-1] liefert als Ergebnis: 1234
a[1:-1] liefert als Ergebnis aber: ['eggs', 100]
Müsste das Ergebnis in diesem 2. Fall nicht eigentlich ['eggs', 1234] oder (analog zu dem Slicing bei Strings) sogar ['eggs', 100, 1234] lauten?
Ich bitte um Anfänger-Unterricht
LG SG

Re: Unklare Listen-Syntax
Verfasst: Donnerstag 28. August 2014, 09:53
von EyDu
Im ersten Fall hast du einen Indexzugriff, im zweiten Slicing. Mit ``m`` greifst du auf das i-te Element zu, mit ``m[i:j]`` holst du dir die Subliste vom Index i bis einschließlich j-1. Das Element mit dem Index j ist nicht mehr enthalten.
Re: Unklare Listen-Syntax
Verfasst: Donnerstag 28. August 2014, 10:06
von MagBen
Die Slicing Syntax ist
[von einschließlich : bis ausschließlich : Schrittweite]
Re: Unklare Listen-Syntax
Verfasst: Donnerstag 28. August 2014, 10:07
von SG ;-)
Also, wenn ich das richtig verstanden habe,
dann kann ich einen Slice bei dem das letzte Element der Liste enthalten ist, wenn ich nicht weiß, wie lange die Liste ist, nur so erhalten?
LG SG

Re: Unklare Listen-Syntax
Verfasst: Donnerstag 28. August 2014, 10:09
von MagBen
Re: Unklare Listen-Syntax
Verfasst: Donnerstag 28. August 2014, 10:12
von SG ;-)
Cool,
das gefällt mir.
Thx
LG SG

Re: Unklare Listen-Syntax
Verfasst: Donnerstag 28. August 2014, 10:14
von MagBen
Die Slicing Syntax ist
[von einschließlich : bis ausschließlich : Schrittweite]
wobei "von einschließlich", "bis ausschließlich" oder "Schrittweite" auch leer oder None oder weggelassen werden dürfen.
Es werden dann sinnvolle Defaultwerte eingesetzt:
von einschließlich: von Anfang an (einschließlich), das muss nicht 0 sein (wenn z.B. die Schrittweite negativ ist)
bis ausschließlich: bis zum Ende (einschließlich)
Schrittweite: 1
Re: Unklare Listen-Syntax
Verfasst: Donnerstag 28. August 2014, 10:18
von SG ;-)
@MagBen
Ja, danke nochmal.
Das erhellt mir grade einiges, das ich hier in dem Tutorial sehe.
LG SG

Re: Unklare Listen-Syntax
Verfasst: Donnerstag 28. August 2014, 10:19
von BlackJack
@SG

: Bezüglich des Nebensatzes im ersten Beitrags: Slicing verhält sich bei Zeichenketten genau so wie bei Listen, da gibt es also keinen Unterschied. Auch bei Zeichenketten ist ``s[1:-1]`` alles ausser dem ersten und dem letzten Element.
Re: Unklare Listen-Syntax
Verfasst: Donnerstag 28. August 2014, 10:24
von SG ;-)
@BlackJack
Gut zu wissen.
Thx
LG SG

Re: Unklare Listen-Syntax
Verfasst: Donnerstag 28. August 2014, 10:49
von BlackJack
Und um noch mal Korinthen zu kacken: Der Betreff ist ein wenig zu speziell, denn das ist keine Listen-Syntax sondern allgemeiner Syntax für einen Indexzugriff mit einem `slice`-Objekt als Argument. Der Ausdruck links davon muss nicht zwingend zu einer Liste ausgewertet werden, was man alleine an der Syntax ja auch gar nicht so einfach feststellen kann, ausser wenn da eine literale Liste steht. Es war wahrscheinlich „Unklare Semantik bei Listen und Slice-Zugriff” gemeint.

Re: Unklare Listen-Syntax
Verfasst: Donnerstag 4. September 2014, 14:40
von akis.kapo
Auf
http://perso.limsi.fr/pointal/python:memento wird es unter "
Indexation des séquences" gut dargestellt.
Der Text ist auf französisch, aber die Diagramme sind dennoch allgemein verständlich.
PDF:
http://perso.limsi.fr/pointal/_media/py ... ython3.pdf
ODF:
http://perso.limsi.fr/pointal/_media/py ... nglish.odg