Fonction rfind()
Résolu/FerméPierrotLeFou - 26 nov. 2022 à 01:49
- Fonction rfind()
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Fonction remplacer word - Guide
- Excel renvoyer la valeur d'une cellule en fonction d'une autre - Forum Logiciels
4 réponses
25 nov. 2022 à 03:01
Bonjour,
Merci de partager le code comme expliqué ici.
Pour préciser ce que dit Pierrot, rfind ou rindex ne change pas la manière dont est indexée la chaîne. Cela change simplement le sens de la recherche (on part de la fin, on remonte vers le début de la chaîne et on s'arrête à la première occurrence trouvée). Cela veut dire que si ta chaîne contient plusieurs fois le mot "amis", la fonction s'arrêtera sur la l'occurrence la plus à droite (d'où le nom rfind).
Quoi qu'il en soit, l'index est toujours compté en partant du premier caractère, car c'est la seule indexation avec laquelle raisonne les chaînes en python (et la seule dont tu devrais avoir besoin d'ailleurs). Cet index sera celui du caractère le plus à gauche de la chaîne cherchée (car c'est là quelle débute).
s = "....abc....abc....." t = "abc" i = s.rfind(t) # 11, car le "abc" de droite débute à l'index 11 j = i + len(t) # 14, car le "abc" de droite se termine juste avant l'index 14 print(s, i, j, s[i:j]) # Le "abc" de droite correspond à s[11:14] print(len(s) - j) # 5, car il reste 5 points après le "abc" de droite
Bonne chance
Essaies avec la chaîne "abcbd" avec index, rindex, find, rfind avec 'b' et 'z' ...
Il trouve le bon indice, mais il commence à chercher à partir de la fin au lieu du début.
Pour avoir ce que tu veux, on peut faire:
len(chaine)-1-chaine.index(...)
25 nov. 2022 à 21:00
Merci pour vos réponses, je pense bien comprendre la fonction .rfind mais il est vrai que dans mon exemple lorsque le terminal me retourne 4 pour trouver "amis", il agit comme la fonction .find si je comprend bien avec rfind il devrait me retourner 11 (le mot "amis" commence à la onzième lettre à partir de la fin)
Il ne faut justement pas penser de cette façon. Tu commences à chercher "amis" à partir de la fin, mais ce mot commence bien à la position 4.
Si tu avais deux fois le mot "amis" dans ta phrase, avec rfind, tu retrouverais la "première" position de la "dernière" occurence.
Le tout toujours à partir du début.