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...