Wie erhält man die Position eines Zeichens in Python?

Wie kann ich die Position eines Zeichens innerhalb einer Zeichenfolge in Python erhalten?

Dafür gibt es zwei String-Methoden, find() und index(). Der Unterschied zwischen den beiden ist, was passiert, wenn der Suchstring nicht gefunden wird. find() gibt -1 zurück und index() löst ValueError aus.

Verwendung von find()

>>> myString = 'Position of a character'
>>> myString.find('s')
2
>>> myString.find('x')
-1

Verwendung von index()

>>> myString = 'Position of a character'
>>> myString.index('s')
2
>>> myString.index('x')
Traceback (most recent call last):
  File "", line 1, in 
ValueError: substring not found

Aus dem Python-Handbuch

string.find(s, sub[, start[, end]]) Gibt den niedrigsten Index in s zurück, in dem die Teilzeichenkette sub so gefunden wird, dass sub vollständig in s[start:end] enthalten ist. Bei Fehlschlag wird -1 zurückgegeben. Die Standardwerte für start und end und die Interpretation negativer Werte ist die gleiche wie für Slices.

Und:

string.index(s, sub[, start[, end]]) Wie find(), löst aber ValueError aus, wenn die Teilzeichenkette nicht gefunden wird.

Kommentare (3)
>>> s="mystring"
>>> s.index("r")
4
>>> s.find("r")
4

"Langatmig" Weg

>>> for i,c in enumerate(s):
...   if "r"==c: print i
...
4

Teilstring zu erhalten,

>>> s="mystring"
>>> s[4:10]
'ring'
Kommentare (4)
string.find(character)  
string.index(character)  

Vielleicht möchten Sie einen Blick in die Dokumentation werfen, um herauszufinden, worin der Unterschied zwischen den beiden besteht.

Kommentare (1)