Je sais que je peux utiliser quelque chose comme string [3: 4] pour obtenir une sous-chaîne en Python, mais qu'est-ce que c'est quelque chose [:: 3]?
Désolé, il est difficile de rechercher cela sur Google.
Je sais que je peux utiliser quelque chose comme string [3: 4] pour obtenir une sous-chaîne en Python, mais qu'est-ce que c'est quelque chose [:: 3]?
Désolé, il est difficile de rechercher cela sur Google.
cela ne signifie rien pour le premier argument, rien pour le second, et saute de trois. Tous les trois éléments de la séquence sont tranchés. Les tranches étendues sont ce que vous voulez. Nouveau dans Python 2.3
s[i:j:k]
est, selon la documentation, "tranche de s de i à j à l'étape k". Lors de l' i
et j
sont absents, l'ensemble de la séquence est supposé et donc s[::k]
signifie "tous les k-ième élément".
Tout d'abord, nous allons initialiser une liste:
>>> s = range(20)
>>> s
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
Prenons tous les 3rd point de s
:
>>> s[::3]
[0, 3, 6, 9, 12, 15, 18]
Prenons tous les 3rd point de s[2:]
:
>>> s[2:]
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> s[2::3]
[2, 5, 8, 11, 14, 17]
Prenons tous les 3rd point de s[5:12]
:
>>> s[5:12]
[5, 6, 7, 8, 9, 10, 11]
>>> s[5:12:3]
[5, 8, 11]
Prenons tous les 3rd point de s[:10]
:
>>> s[:10]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> s[:10:3]
[0, 3, 6, 9]
Pour le découpage en Python le troisième paramètre est l'étape. Comme d'autres l'ont mentionné, voir l' Étendu des Tranches pour une belle vue d'ensemble.
Avec cette connaissance, [::3]
signifie simplement que vous n'avez pas spécifié de début ou de fin d'indices pour votre tranche. Puisque vous avez spécifié une étape, 3
, cela va prendre chaque troisième entrée de something
à partir de la première index. Par exemple:
>>> '123123123'[::3]
'111'
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.