In an einigen Python-Strings und Funktionen suchen, entdeckte ich dieses seltsame Marotte von Python:Warum funktioniert s [len (s) -1: -1: -1] nicht?
s = "hello"
print s[::-1]
die dann druckt: olleh
jedoch print s[len(s)-1:-1:-1]
funktioniert nicht. Mein Verständnis ist, dass es vom letzten Element s[len(s)-1]
zum ersten Element s[0]
iterieren sollte. Es wird jedoch nur eine leere Zeichenfolge ''
gedruckt, die ich glaube, weil in Strings bestimmter Länge (etwa 5), s[4] == s[-1]
. Aber ich verstehe nicht, warum Python entscheidet, -1
statt 4
zu verwenden, die die tatsächliche len(s)
ist.
Darüber hinaus funktioniert s[len(s):0:-1] + s[0]
funktioniert. Warum ist len(s)
ein gültiger Index? Konvertiert Python einfach len(s)
in 0 beliebig?
P.S. Dies ist in Python 2.7.8, ich bin nicht sicher, ob es funktioniert auch in 3.xx
EDIT: Bestätigt in Python gleich seine 3