Réponses:
>>> s = "the dude is a cool dude"
>>> s.find('dude')
4
isde la phrase this is a cool dude? J'ai essayé la méthode find mais elle renvoie l'index 2 au lieu de 5. Comment puis-je y parvenir en utilisant find ()?
indexetfindÀ côté de la findméthode, il y en a aussi index. findet les indexdeux donnent le même résultat: renvoyer la position de la première occurrence, mais si rien n'est trouvé indexlèvera un ValueErroralors findrenvoie -1. Speedwise, les deux ont les mêmes résultats de référence.
s.find(t) #returns: -1, or index where t starts in s
s.index(t) #returns: Same as find, but raises ValueError if t is not in s
rfindet rindex:En général, find et index renvoient le plus petit index où la chaîne transmise commence et
rfindetrindexretournent le plus grand index où il commence La plupart des algorithmes de recherche de chaîne recherchent de gauche à droite , donc les fonctions commençant parrindiquent que la recherche se déroule de droite à gauche .
Donc, dans le cas où la probabilité de l'élément que vous recherchez est proche de la fin que du début de la liste, rfindou rindexserait plus rapide.
s.rfind(t) #returns: Same as find, but searched right to left
s.rindex(t) #returns: Same as index, but searches right to left
Source: Python: Guide de démarrage rapide visuel, Toby Donaldson
input_string = "this is a sentence"et si nous souhaitons trouver la première occurrence du mot is, cela fonctionnera-t-il? # first occurence of word in a sentence input_string = "this is a sentence" # return the index of the word matching_word = "is" input_string.find("is")
pour implémenter cela de manière algorithmique, en n'utilisant aucune fonction intégrée python. Cela peut être implémenté comme
def find_pos(string,word):
for i in range(len(string) - len(word)+1):
if string[i:i+len(word)] == word:
return i
return 'Not Found'
string = "the dude is a cool dude"
word = 'dude1'
print(find_pos(string,word))
# output 4
def find_pos(chaine,x):
for i in range(len(chaine)):
if chaine[i] ==x :
return 'yes',i
return 'no'
verse = "Si vous pouvez garder la tête quand tout à propos de vous \ n Perdez la leur et vous blâmez, \ nSi vous pouvez vous faire confiance lorsque tous les hommes doutent de vous, \ n Mais tenez également compte de leurs doutes; \ nSi vous le pouvez attendez et ne soyez pas fatigué d’attendre, \ n ou de vous faire mentir, de ne pas mentir, \ n d’être détesté, de ne pas céder à la haine, \ n Et pourtant, ne paraissez pas trop bien, ni ne parlez trop sage : "
enter code here
print(verse)
#1. What is the length of the string variable verse?
verse_length = len(verse)
print("The length of verse is: {}".format(verse_length))
#2. What is the index of the first occurrence of the word 'and' in verse?
index = verse.find("and")
print("The index of the word 'and' in verse is {}".format(index))
-1si non trouvé