Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.python > #4328 > unrolled thread

Comment fonctionne [::-] ?

Started byDominique <dominique.sextant@orange.fr.invalid>
First post2025-12-23 15:51 +0100
Last post2025-12-23 18:32 +0100
Articles 5 — 3 participants

Back to article view | Back to fr.comp.lang.python


Contents

  Comment fonctionne [::-] ? Dominique <dominique.sextant@orange.fr.invalid> - 2025-12-23 15:51 +0100
    Re: Comment fonctionne [::-] ? Olivier Miakinen <om+news@miakinen.net> - 2025-12-23 16:30 +0100
      Re: Comment fonctionne [::-] ? Python <python@cccp.invalid> - 2025-12-23 16:53 +0000
        Re: Comment fonctionne [::-] ? Dominique <dominique.sextant@orange.fr.invalid> - 2025-12-23 18:34 +0100
      Re: Comment fonctionne [::-] ? Dominique <dominique.sextant@orange.fr.invalid> - 2025-12-23 18:32 +0100

#4328 — Comment fonctionne [::-] ?

FromDominique <dominique.sextant@orange.fr.invalid>
Date2025-12-23 15:51 +0100
SubjectComment fonctionne [::-] ?
Message-ID<10ieaa6$bc4s$1@dont-email.me>
Bonjour,

Tout est dans le sujet. J'ai bien compris le résultat :

test="Bonjour Python"
test[::-1]
'nohtyP ruojnoB'

Ce que je ne parviens pas à comprendre, c'est comment fonctionne [::-1] 
Si vous pouviez m'éclairer, j'en serais heureux.

Merci par anticipation 😊

Joyeux Noël à tous,
-- 
Dominique
Esto quod es

[toc] | [next] | [standalone]


#4329

FromOlivier Miakinen <om+news@miakinen.net>
Date2025-12-23 16:30 +0100
Message-ID<10iecji$f1v$1@cabale.usenet-fr.net>
In reply to#4328
Le 23/12/2025 à 15:51, Dominique a écrit :
> 
> test="Bonjour Python"
> test[::-1]
> 'nohtyP ruojnoB'
> 
> Ce que je ne parviens pas à comprendre, c'est comment fonctionne [::-1] 

Voici ce que j'en comprends.

Il y a trois parties autour des deux-points, respectivement :
- une partie vide avant le premier deux-points ;
- une partie vide entre les deux deux-points ;
- le nombre -1 après le dernier deux-points.

La première partie indique où on commence, la deuxième partie
indique où on s'arrête, et la troisième partie indique à la
fois dans quel sens on va, et de combien de caractères on
se déplace à chaque fois.

Quelques exemples pour mieux comprendre :
"abcdefgh"[0:5:1] -> 'abcde'
"abcdefgh"[0:5:2] -> 'ace'
"abcdefgh"[5:0:-1] -> 'fedcb'
"abcdefgh"[5:0:-2] -> 'fdb'

Maintenant, les deux parties vides indiquent que les positions
de départ et d'arrivée sont les deux extrémités de la chaine,
donc toute la chaine.

Cordialement,
-- 
Olivier Miakinen

[toc] | [prev] | [next] | [standalone]


#4330

FromPython <python@cccp.invalid>
Date2025-12-23 16:53 +0000
Message-ID<xRYo3QQG5DBwRULZuWEGlAtU9sI@jntp>
In reply to#4329
Le 23/12/2025 à 16:30, Olivier Miakinen a écrit :
> Le 23/12/2025 à 15:51, Dominique a écrit :
>> 
>> test="Bonjour Python"
>> test[::-1]
>> 'nohtyP ruojnoB'
>> 
>> Ce que je ne parviens pas à comprendre, c'est comment fonctionne [::-1] 
> 
> Voici ce que j'en comprends.
> 
> Il y a trois parties autour des deux-points, respectivement :
> - une partie vide avant le premier deux-points ;
> - une partie vide entre les deux deux-points ;
> - le nombre -1 après le dernier deux-points.
> 
> La première partie indique où on commence, la deuxième partie
> indique où on s'arrête, et la troisième partie indique à la
> fois dans quel sens on va, et de combien de caractères on
> se déplace à chaque fois.
> 
> Quelques exemples pour mieux comprendre :
> "abcdefgh"[0:5:1] -> 'abcde'
> "abcdefgh"[0:5:2] -> 'ace'
> "abcdefgh"[5:0:-1] -> 'fedcb'
> "abcdefgh"[5:0:-2] -> 'fdb'
> 
> Maintenant, les deux parties vides indiquent que les positions
> de départ et d'arrivée sont les deux extrémités de la chaine,
> donc toute la chaine.
> 
> Cordialement,

c'est tout à fait ça :

 >>> test="Bonjour Python"
 >>> test[::-1]
 'nohtyP ruojnoB'
 >>> len(test)
 14
 >>> test[14:0:-1]
 'nohtyP ruojno'
 >>> test[-1:0:-1]
 'nohtyP ruojno'
 >>> test[-1::-1]
 'nohtyP ruojnoB'
 >>> test[14::-1]
 'nohtyP ruojnoB'

[toc] | [prev] | [next] | [standalone]


#4332

FromDominique <dominique.sextant@orange.fr.invalid>
Date2025-12-23 18:34 +0100
Message-ID<10iejq9$ej84$2@dont-email.me>
In reply to#4330
Le 23/12/2025 à 17:53, Python a écrit :

> c'est tout à fait ça :
> 
>  >>> test="Bonjour Python"
>  >>> test[::-1]
> 'nohtyP ruojnoB'
>  >>> len(test)
> 14
>  >>> test[14:0:-1]
> 'nohtyP ruojno'
>  >>> test[-1:0:-1]
> 'nohtyP ruojno'
>  >>> test[-1::-1]
> 'nohtyP ruojnoB'
>  >>> test[14::-1]
> 'nohtyP ruojnoB'

Je me suis amusé avec ça, après les explications d’Olivier. Je suis 
impressionné par la souplesse de Python !

Bonnes fêtes de fin d'année à tous et merci pour vos réponses,

-- 
Dominique
Esto quod es

[toc] | [prev] | [next] | [standalone]


#4331

FromDominique <dominique.sextant@orange.fr.invalid>
Date2025-12-23 18:32 +0100
Message-ID<10iejn8$ej84$1@dont-email.me>
In reply to#4329
Le 23/12/2025 à 16:30, Olivier Miakinen a écrit :

> Voici ce que j'en comprends.
> 
> Il y a trois parties autour des deux-points, respectivement :
> - une partie vide avant le premier deux-points ;
> - une partie vide entre les deux deux-points ;
> - le nombre -1 après le dernier deux-points.
> 
> La première partie indique où on commence, la deuxième partie
> indique où on s'arrête, et la troisième partie indique à la
> fois dans quel sens on va, et de combien de caractères on
> se déplace à chaque fois.
> 
> Quelques exemples pour mieux comprendre :
> "abcdefgh"[0:5:1] -> 'abcde'
> "abcdefgh"[0:5:2] -> 'ace'
> "abcdefgh"[5:0:-1] -> 'fedcb'
> "abcdefgh"[5:0:-2] -> 'fdb'
> 
> Maintenant, les deux parties vides indiquent que les positions
> de départ et d'arrivée sont les deux extrémités de la chaine,
> donc toute la chaine.
> 
> Cordialement,

Merci Olivier, ton explication est très claire. Je comprends mieux 
pourquoi « ça marche » 😊

Cette formulation est vraiment puissante. Merci encore,

-- 
Dominique
Esto quod es

[toc] | [prev] | [standalone]


Back to top | Article view | fr.comp.lang.python


csiph-web