Hoe kan ik de positie van een karakter in een string in python krijgen?
Er zijn twee string methodes hiervoor, find()
en index()
. Het verschil tussen de twee is wat er gebeurt als de zoek string'niet gevonden wordt. find()
geeft -1
terug en index()
geeft ValueError
.
find()
>>> myString = 'Position of a character'
>>> myString.find('s')
2
>>> myString.find('x')
-1
index()
>>> myString = 'Position of a character'
>>> myString.index('s')
2
>>> myString.index('x')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
string.find(s, sub[, start[, end]])
Geeft de laagste index in s waar de substring sub is gevonden zodanig dat sub geheel ins[start:end]
zit. Geeft-1
terug bij falen. Defaults voor start en eind en interpretatie van negatieve waarden is hetzelfde als voor slices.
En:
string.index(s, sub[, start[, end]])
Zoalsfind()
maar geeftValueError
als de substring niet gevonden wordt.
>>> s="mystring"
>>> s.index("r")
4
>>> s.find("r")
4
"Long winded" way
>>> for i,c in enumerate(s):
... if "r"==c: print i
...
4
om een substring te krijgen,
>>> s="mystring"
>>> s[4:10]
'ring'
string.find(character)
string.index(character)
Misschien wilt u de documentatie bekijken om te weten te komen wat het verschil tussen de twee is.