Bonjour,
il y a différentes façons d'inverser une chaine de caractères en python.
Ici, je m'intéresse à la façon de recopier une liste ( chaine ) avec [:]
je commence tout d'abord par le classique pour être sûr:
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 str1 = "bonjour" str2 = str1[0:len(str1):1] str3 = str1[:] print(str2) print(str3)
j'obtiens deux fois "bonjour"
J'en conclus que str3 est la version simplifiée de str2 et pour str2, on part du premier caractère jusqu'au dernier ( exclu ) de 1 en 1
Si je souhaite inverser la chaine:
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 str1 = "bonjour" str2 = str1[len(str1):0:-1] str3 = str1[::-1] print(str2) print(str3)
En partant de ma réflexion plus haut, je pensais avoir encore deux fois le même résultat mais inversé.
Hors, str3 donne bien la chaine inversée, mais il manque le b à la fin pour str2.
Puisque le 0 est exclu, je conçois que le "b" manque, mais si str2 démarre à l'index len(str1), il devrait y avoir une erreur, non ?
Donc, la question: [::-1] est la version simplifiée de quoi ?
disons que je comprends bien [:], mais pour moi, [::-1] ne fonctionne pas de la même manière !
Voilà: un petit détail qui me chagrine...
Partager