Nehmen wir an, ich habe eine Zeichenfolge, die aus x unbekannten Zeichen besteht. Wie könnte ich char nr bekommen. 13 oder char nr. x-14?
86
Stellen Sie zunächst sicher, dass die erforderliche Nummer von Anfang oder Ende an ein gültiger Index für die Zeichenfolge ist, und verwenden Sie dann einfach die Array-Indexnotation. Verwenden Sie len(s)
diese Option, um die Zeichenfolgenlänge abzurufen
>>> s = "python"
>>> s[3]
'h'
>>> s[6]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
>>> s[0]
'p'
>>> s[-1]
'n'
>>> s[-6]
'p'
>>> s[-7]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
>>>
s[-5]
kann funktionieren,s[-6]
würde aber einen Indexfehler außerhalb des Bereichs beanstanden? So neugierig auf die Implementierung im String-Objekt in Python.Für positive Indexbereiche für x liegt der Wert zwischen 0 und 44 (dh Länge - 1).
Für den negativen Index reicht der Index von -1 bis -45
Bei negativem Index gibt negativ [Länge -1], dh der letzte gültige Wert des positiven Index, das zweite Listenelement an, wenn die Liste in umgekehrter Reihenfolge gelesen wird.
Andere, Indexbeispiele,
quelle
Frühere Antworten beziehen sich
ASCII character
auf einen bestimmten Index.Es ist ein bisschen mühsam,
Unicode character
in Python 2 einen bestimmten Index zu erhalten.ZB mit
s = '한국中国にっぽん'
dem ist<type 'str'>
,__getitem__
z. B.s[i]
führt Sie nicht dorthin, wo Sie es wünschen. Es wird so etwas wie ausspucken�
. (Viele Unicode-Zeichen sind mehr als 1 Byte,__getitem__
in Python 2 wird sie jedoch um 1 Byte erhöht.)In diesem Python 2-Fall können Sie das Problem durch Decodieren lösen:
quelle
Python.org hat einen ausgezeichneten Abschnitt Strings hier . Scrollen Sie nach unten zu "Slice Notation".
quelle
Eine weitere empfohlene Übung zum Verständnis von Listen und Indizes:
quelle
Dies sollte die Punkte weiter verdeutlichen:
Eingang 3 Ausgang m
Eingang -3 Ausgang p
quelle
Ich denke, das ist klarer als es in Worten zu beschreiben
quelle