[Python] Qu'est-ce qu'une tranche? Une explication facile à comprendre de son utilisation avec un exemple concret

[Python] Qu'est-ce qu'une tranche? Une explication facile à comprendre de sa signification et de son utilisation avec des exemples réels

Les tranches que vous entendez lors de l'apprentissage de python.

Parce que le comportement change en fonction de la spécification de plage et de la quantité de changement spécifiée par plus et moins.

Vérifiez chaque modèle pour voir ce qui se passe lorsque la plage est spécifiée, que la quantité de modification est définie sur plus ou moins, ou lorsque la plage est spécifiée en dehors de la plage et que tout comportement involontaire est évité.


**table des matières**
  1. [Qu'est-ce qu'une tranche? ](# 1-Qu'est-ce qu'une tranche)
  2. [Basic Slice Syntax](# 2-Basic Slice Syntax)
  3. [Comment lire le numéro de séquence](# 3-Comment lire le numéro de séquence)
  4. [La valeur de départ est positive](# 1 Lorsque la valeur de départ est positive)
  5. [type de liste](type de liste # 1-1)
  6. [Caractère](# 1-2-Caractère)
  7. [La valeur de départ est négative](# 2 Lorsque la valeur de départ est négative)
  8. [type de liste](type de liste # 2-1)
  9. [Caractère](caractère # 2-2)
  10. [Mélange moins et plus](# 3 mélangé moins et plus)
  11. [Concept lors de la spécification hors plage](# 4 Concept lors de la spécification hors plage)
  12. [Vérifiez avec des exemples pour chaque modèle](# 4-Vérifiez les tranches avec des exemples pour chaque modèle)
  13. [[:] Non spécifié](# 1-Tout non spécifié)
  14. [[a:] Spécifiez uniquement le début](# 2-a Spécifiez uniquement le début)
  15. [[: b] Spécifiez uniquement la fin](# 3-b Spécifiez uniquement la fin)
  16. [[a: b] Spécifiez le début et la fin](# 4-ab Spécifiez le début et la fin)
  17. [[a: b: c] Spécifiez le montant de début, de fin, de modification](# 5-abc spécifie le montant de début de fin de modification)
  18. [[a :: c] Début, spécifiez le montant du changement](# 6-ac Spécifiez le montant du changement de début)
  19. [[: b: c] Fin, spécifier le montant de la modification](# 7-bc spécifier le montant de la modification de fin)
  20. [[:: c] Spécifiez uniquement le montant du changement](# 8-c Spécifiez uniquement le montant du changement)
  21. [Cas d'erreur](cas d'erreur n ° 5)

## 1. Qu'est-ce qu'une tranche?

Un type de ** méthode de spécification de plage ** telle que list. Notation pour spécifier la plage avec «[]» et «:».

Des choses comme [1: 5] et [2:] que vous voyez souvent dans la liste et pour les déclarations.

Il peut être utilisé non seulement pour la liste mais aussi pour les chaînes de caractères (str), les tuples, les ensembles, les plages, etc.

Découpez (découpez) des éléments et des caractères consécutifs à n'importe quel endroit.


## 2. Syntaxe de base des tranches `[a:b:c]` └ "a": numéro de séquence de départ └ "b": numéro de séquence de fin (inférieur à) └ "c": montant du changement
#### ▼ "Moins" peut être défini pour a, b et c respectivement

** N'inclut pas la valeur spécifiée par "b" **. └ Pour terminer avec la valeur spécifiée.


#### ▼ Chaque élément peut être omis
  1. [:]: Non spécifié = Tout
  2. [a:]: Spécifiez uniquement le début
  3. [: b]: Spécifiez uniquement la fin
  4. [a: b]: Spécifiez le début et la fin
  5. [a: b: c]: Spécifiez le montant de début, de fin, de modification
  6. [a :: c]: Commencez, spécifiez le montant du changement
  7. [: b: c]: Fin, spécifiez le montant de la monnaie
  8. [:: c]: Spécifiez uniquement le montant de la monnaie

** Supplément ** 9. [a ::]: Spécifiez uniquement le début (identique à [a:]) 10. [: b:]: Spécifiez uniquement le début (identique à [: b])


## 3. Comment lire le numéro de séquence L'attribution des numéros de séquence change selon que la valeur de départ est positive ou négative **.

(1) Lorsque la valeur de départ est positive 1-1. Type de liste 1-2. Caractère

(2) Lorsque la valeur de départ est négative 2-1. Type de liste 2-2. Caractère

(3) Lorsque le prix de départ est moins et le prix final est plus

(4) Concept lors de la spécification en dehors de la plage


### (1) Lorsque la valeur de départ est positive ** À compter du 0e **.

1-1. Type de liste

Exemple 1: Quand ʻa = [1,2,3,4,5] `

Les données 1 2 3 4 5
Numéro de séquence 0 1 2 3 4

Exemple 2: lorsque `b = [2020,3,25," year "," month "," day "]`
Les données 2020 3 25 Année Mois journée
Numéro de séquence 0 1 2 3 4 5

#### 1-2. Caractère (1 élément) Exemple 1: pour "This is slice"
Les données T h i s i s s l i c e
Numéro de séquence 0 1 2 3 4 5 6 7 8 9 10 11 12

Exemple 2: `d =" Ceci est une "tranche". Dans le cas de "`
Les données Cette Mais Su La je Su alors Su
Numéro de séquence 0 1 2 3 4 5 6 7 8 9 10 11 12 13

### (2) Lorsque la valeur de départ est négative ** Comptez les dernières données comme "-1" th **.

2-1. Type de liste

Exemple 1: Quand ʻa = [1,2,3,4,5] `

Les données 1 2 3 4 5
Numéro de séquence -5 -4 -3 -2 -1

Exemple 2: lorsque `b = [2020,3,25," year "," month "," day "]`
Les données 2020 3 25 Année Mois journée
Numéro de séquence -6 -5 -4 -3 -2 -1

#### 2-2. Caractère (1 élément) Exemple 1: lorsque `c =" Ceci est une tranche "`
Les données T h i s i s s l i c e
Numéro de séquence -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1

Exemple 2: `d =" Ceci est une "tranche". Dans le cas de "`
Les données Cette Mais Su La je Su alors Su
Numéro de séquence -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1

### (3) Moins et plus sont mélangés

** ■ Pensée ** Le fait qu'il soit positif ou négatif dépend de la méthode ** le nombre est spécifié **.

・ S'il est négatif, reportez-vous aux données correspondant au numéro de séquence (-).

・ S'il est positif, reportez-vous aux données correspondant au numéro de séquence (+).

Les données 1 2 3 4 5
Numéro de séquence(+) 0 1 2 3 4
Numéro de séquence(-) -5 -4 -3 -2 -1

** ▼ Exemple ** ・ Valeur de départ "-3" ⇒ Les données sont "3" ・ Valeur finale "4" ⇒ Les données sont "5"

⇒ 3 à moins de 5. La sortie est [3, 4].


** ▼ Point ** * `[-3: 4]` ne spécifie pas -3 à 4 successivement. Ce n'est pas "-3, -2, -1,0,1,2,3,4".

Si les valeurs de début et de fin sont mélangées, il est plus facile de les comprendre en les remplaçant par des nombres positifs, qui correspondent à des nombres négatifs.

・ ` "-3: 4" ` = ` "2: 4" ` ・ ` "-5: 4" ` = ` "0: 4" ` ・ ` "1: -1" ` = ` "1: 5" `


### (4) Concept lors de la spécification en dehors de la plage Spécifier hors de portée ne provoque pas d'erreur. La partie sans données est vide.
## 4. Vérifiez la tranche de chaque motif avec un exemple
  1. [:]: Non spécifié = Tout
  2. [a:]: Spécifiez uniquement le début
  3. [: b]: Spécifiez uniquement la fin
  4. [a: b]: Spécifiez le début et la fin
  5. [a: b: c]: Spécifiez le montant de début, de fin, de modification
  6. [a :: c]: Commencez, spécifiez le montant du changement
  7. [: b: c]: Fin, spécifiez le montant de la monnaie
  8. [:: c]: Spécifiez uniquement le montant de la monnaie

## 1. `[:]` Non spécifié = Tout Sortie de toutes les données stockées

liste (valeur numérique)


a = [1, 2, 3, 4, 5]
a[:]

#production
# [1, 2, 3, 4, 5]

lettre


c = 'This is slice'
c[:]

#production
# 'This is slice'

Caractère (directement spécifié)


'This is slice'[:]

#production
# 'This is slice'

## 2. `[a:]`: Spécifiez uniquement le début

▼ Numéro de séquence 2e ou supérieur (2 à 4)

Désigné par plus


a = [1, 2, 3, 4, 5]
a[2:]

#production
# [3, 4, 5]

▼ SEQ ID NO: -4e ou plus (-4 à -1)

Précisez avec moins


a = [1, 2, 3, 4, 5]
a[-4:]

#production
# [2, 3, 4, 5]

** ▼ (Supplément) Numéro de séquence de chaque donnée **

Les données 1 2 3 4 5
Numéro de séquence(+) 0 1 2 3 4
Numéro de séquence(-) -5 -4 -3 -2 -1

#### ■ Lorsque hors de portée est spécifié -Aucune erreur ne se produira. ・ La plage non applicable est vide.

▼ Lorsque "6" est spécifié comme valeur de départ dans la liste qui n'a que "4".

(Hors de la plage) Désigné par plus


a = [1, 2, 3, 4, 5]
a[6:]

#production
# []

Pas de coup


▼ Lorsque "-10" est spécifié comme valeur de départ dans la liste qui n'a que le "-5" à "-1" th.

(En dehors de la plage) Spécifiez avec moins


a = [1, 2, 3, 4, 5]
a[-10:]

#production
# [1, 2, 3, 4, 5]

-10 à -6 sont vides. -Le 5e coup ou plus.


## 3. `[: b]` Spécifiez uniquement la fin

▼ Numéro de séquence jusqu'au 3e (0 au 2e) └ Moins de 3 (car il se termine au 3ème)

Désigné par plus


a = [1, 2, 3, 4, 5]
a[:3]

#production
# [1, 2, 3]

▼ SEQ ID NO: -1st (-5 à -2) └ Inférieur à -1 (car il se termine à -1)

Précisez avec moins


a = [1, 2, 3, 4, 5]
a[:-1]

#production
# [1, 2, 3, 4]

** ▼ (Supplément) Numéro de séquence de chaque donnée **

Les données 1 2 3 4 5
Numéro de séquence(+) 0 1 2 3 4
Numéro de séquence(-) -5 -4 -3 -2 -1

## 4. `[a: b]` Spécifiez le début et la fin

▼ Spécifiez le numéro de séquence du 1er à moins de 4. └ 4 n'est pas inclus (3 éléments de 1 à 3)

Désigné par plus


a = [1, 2, 3, 4, 5]
a[1:4]

#production
# [2, 3, 4]

▼ SEQ ID NO: -4e à moins de -2 └ N'inclut pas -2. (2 éléments de -4 à -3)

Précisez avec moins


a = [1, 2, 3, 4, 5]
a[-4:-2]

#production
# [2, 3]

** ▼ (Supplément) Numéro de séquence de chaque donnée **

Les données 1 2 3 4 5
Numéro de séquence(-) -5 -4 -3 -2 -1

** ■ Lorsque le prix de départ est moins et le prix final est plus **

Si la valeur de départ est négative, reportez-vous à ** Données correspondant au numéro de séquence (-) ** pour la valeur de départ.

Si la valeur de clôture est positive, reportez-vous à ** Données correspondant au numéro de séquence (+) ** pour la valeur de clôture.


** ▼ Lorsque -3 est spécifié pour la valeur de départ et 4 est spécifié pour la valeur finale **

Désigné par plus et moins


a = [1, 2, 3, 4, 5]
a[-3:4]

#production
# [3, 4]

Si les valeurs de début et de fin sont mélangées, il est plus facile de les comprendre en les remplaçant par des nombres positifs, qui correspondent à des nombres négatifs.

Les données 1 2 3 4 5
Numéro de séquence(+) 0 1 2 3 4
Numéro de séquence(-) -5 -4 -3 -2 -1

・ ` "-5: 4" ` = ` "0: 4" ` ・ ` "1: -1" ` = ` "1: 5" ` ・ ` "-3: 2" ` = ` "2: 2" `


** ■ Lorsque hors de portée est spécifié ** Aucune erreur ne se produira et les données non applicables seront vides.

▼ Spécifiez la 10e valeur de fin pour les données jusqu'à la 4e seulement.

Spécifier hors de portée (plus)


a = [1, 2, 3, 4, 5]
a[3:10]

#production
# [4, 5]

Les sixième et suivantes données ne sont pas applicables.


▼ -Spécifiez -20 comme valeur de départ pour les données qui ne sont que jusqu'au 5ème.

Spécifier hors de portée (moins)


a = [1, 2, 3, 4, 5]
a[-20:-3]

#production
# [1, 2]

Aucun résultat de -20 à -6. Les données de -5 à moins de -3rd sont générées.


▼ Spécifiez les 10e à 20e données avec seulement 0e à 4e données.

Spécifier hors de portée de hors de portée (plus)


a = [1, 2, 3, 4, 5]
a[10:30]

#production
# []

La sortie sera vide.


▼ Spécifiez les données de -20 à -10 avec seulement -1 à -5.

Spécifier hors de portée de hors de portée (moins)


a = [1, 2, 3, 4, 5]
a[-20:-10]

#production
# []

La sortie sera vide.


** ■ Lorsque vous spécifiez en dehors de la plage avec plus et moins **

▼ Spécifiez hors de la plage de la valeur de départ négative à la valeur finale positive.

Spécifier hors de portée de hors de portée (moins et plus)


a = [1, 2, 3, 4, 5]
a[-20:10]

#production
# [1,2,3,4,5]

Le résultat est le même que [-5: 4] = [0: 4].

-20 Moins de -5 est dû au fait qu'il n'y a pas de données. -5 est la valeur maximale. -5 correspond à la 0e désignation de plus.

10 Puisqu'il n'y a pas de données après le 4e, 4 est la valeur maximale.

Les données 1 2 3 4 5
Numéro de séquence(+) 0 1 2 3 4
Numéro de séquence(-) -5 -4 -3 -2 -1

## 5. `[a: b: c]` Spécifiez le montant de début, de fin, de modification

▼ Lorsque la valeur de départ 1, la valeur de fin 9 et le montant de modification 2 sont spécifiés.

Spécifiez le montant de début, de fin et de modification(plus)



a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a[1:9:2]

#production
# [2, 4, 6, 8]

Augmentez le numéro de séquence du 1er au 2ème et exécutez jusqu'à moins de 9. Extraire les données correspondant au numéro.


** Spécifiez le montant du changement sous la forme d'un moins ** ▼ Lorsque la valeur de départ est 8, la valeur finale est 3 et le montant du changement est -2.

Spécifiez le montant de début, de fin et de modification(moins)



a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a[8:3:-2]

#production
# [9, 7, 5]

Diminuez le numéro de séquence de 2 à partir du 8e et terminez quand il s'agit du 3e (le 3e n'est pas inclus). Extraire les données correspondant au numéro.

Les données 1 2 3 4 5 6 7 8 9 10
Numéro de séquence 0 1 2 3 4 5 6 7 8 9

** Tous spécifiés comme moins ** ▼ Lorsque la valeur de départ -3, la valeur de fin -8 et le montant de la modification -2 sont spécifiés.

Spécifiez le montant de début, de fin et de modification(moins)



a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a[-3:-8:-2]

#production
# [8, 6, 4]

Diminuez le numéro de séquence de 2 à partir de -3e, et terminez quand il s'agit de -8e (-8e n'est pas inclus). Extraire les données correspondant au numéro.

Les données 1 2 3 4 5 6 7 8 9 10
Numéro de séquence -10 -9 -8 -7 -6 -5 -4 -3 -2 -1

## 6. `[a :: c]` Début, spécifiez le montant du changement

▼ Lorsque la valeur de départ 1 et le montant du changement 3 sont spécifiés

Spécifiez uniquement le montant de début et de modification(plus)



a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a[1::3]

#production
# [2, 5, 8]

Augmentez le nombre de 1 à 3 et exécutez jusqu'à ce qu'il y ait des données.


▼ Lorsque la valeur de départ 5 et le montant de modification -1 sont spécifiés

Spécifiez uniquement le montant de début et de modification(moins)



a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a[5::-1]

#production
# [6, 5, 4, 3, 2, 1]

Diminuez le nombre de 5 à 1 et exécutez jusqu'à ce qu'il y ait des données.


## 7. `[: b: c]` Fin, spécifiez le montant de la monnaie

** La valeur de départ est différente ** selon que le montant de la variation est positif ou négatif.

▼ Lorsque la valeur finale 5 et le montant du changement 2 sont spécifiés (valeur de départ 0)

Spécifiez uniquement la fin et modifiez le montant(plus)



a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a[:5:2]

#production
# [1, 3, 5]

** Valeur de départ 0e ** Augmentez le nombre de 2 et exécutez à moins de 5e (5e n'est pas inclus).


▼ Lorsque la valeur de fin 5 et le montant de la modification -2 sont spécifiés (la valeur de départ est la dernière donnée)

Spécifiez uniquement la fin et modifiez le montant(plus)



a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a[:5:-2]

#production
# [10, 8]

** Valeur de départ 9e ** Diminuez le nombre de 2 et exécutez à moins de 5e (5e n'est pas inclus).


## 8. `[:: c]` Spécifiez uniquement le montant de la monnaie

La valeur de départ est différente selon que le montant de la variation est ** plus ** ou ** moins **.

▼ Lorsque le montant du changement est positif (valeur de départ 0)

Spécifiez uniquement le montant de la monnaie(plus)



a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a[::3]

#production
# [1, 4, 7, 10]

** Valeur de départ 0e ** Augmentez le nombre de 3 et exécutez jusqu'à ce qu'il y ait des données.


▼ Lorsque le montant de la modification est négatif (la valeur de départ est la dernière donnée)

Spécifiez uniquement le montant de la monnaie(moins)



a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a[::-3]

#production
# [10, 7, 4, 1]

** Valeur de départ 1

Diminuez le nombre de 0e ** à 3e et exécutez jusqu'à ce qu'il y ait des données.


## 5. Cas d'erreur Certains objets ne peuvent pas être découpés, tels que le type int (entier) et le type float (diviseur).

Cas d'erreur (type int)


1001[2:]

#production
# TypeError: 'int' object is not subscriptable

Cas d'erreur (type flottant)


123.45[2:5]

#production
# TypeError: 'float' object is not subscriptable

[Haut de la page](#pyhton slice est une explication facile à comprendre de sa signification et de son utilisation)

Recommended Posts

[Python] Qu'est-ce qu'une tranche? Une explication facile à comprendre de son utilisation avec un exemple concret
[Python] Qu'est-ce qu'un tuple? Explique comment utiliser sans toucher et comment l'utiliser avec des exemples.
[Python] Explique comment utiliser la fonction range avec un exemple concret
[Python] Explique comment utiliser la fonction format avec un exemple
[Python] Qu'est-ce que pip? Expliquez la liste des commandes et comment l'utiliser avec des exemples réels
python: Astuces pour afficher un tableau (liste) avec un index (comment savoir quel numéro est un élément d'un tableau)
Une histoire sur la façon dont les utilisateurs de Windows 10 ont créé un environnement pour utiliser OpenCV3 avec Python 3.5
Comment convertir un tableau en dictionnaire avec Python [Application]
[Introduction aux statistiques] Quel type de distribution est la distribution t, la distribution chi carré et la distribution F? Un petit résumé de l'utilisation de [python]
Python: comment utiliser async avec
Python> Qu'est-ce qu'une tranche étendue?
[Git] J'ai essayé de faciliter la compréhension de l'utilisation de git stash en utilisant un exemple concret.
Notez ce que vous avez fait pour utiliser Flycheck avec Python
Comment utiliser un éditeur externe pour le développement Python avec Grasshopper
Comment utiliser Python avec Jw_cad (Partie 1 Qu'est-ce que la transformation externe)
[Python] Résumé de l'utilisation des pandas
[Pandas] Qu'est-ce que set_option [Comment utiliser]
[python] Comment utiliser __command__, explication des fonctions
[Python2.7] Résumé de l'utilisation d'unittest
Résumé de l'utilisation de la liste Python
[Python2.7] Résumé de l'utilisation du sous-processus
Comment utiliser is et == en Python
[Question] Comment utiliser plot_surface de python
[Python] Qu'est-ce qu'un argument formel? Comment définir la valeur initiale
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
[Introduction à Python] Quelle est la méthode de répétition avec l'instruction continue?
Comment écrire quoi faire lorsque l'application est affichée pour la première fois dans Qt pour Python avec Designer
L'histoire de la création d'un outil pour charger une image avec Python ⇒ l'enregistrer sous un autre nom
Qu'est-ce qu'un algorithme? Introduction à l'algorithme de recherche] ~ Python ~
Comment lire un fichier CSV avec Python 2/3
[Python] Comment utiliser deux types de type ()
Comment recadrer une image avec Python + OpenCV
Résumé de l'utilisation de MNIST avec Python
Comment spécifier des attributs avec Mock of Python
Comment utiliser tkinter avec python dans pyenv
Il est plus pratique d'utiliser csv-table lors de l'écriture d'une table avec python-sphinx
Créer un outil de génération de documents Python car il est difficile d'utiliser sphinx
Comment obtenir une liste de fichiers dans le même répertoire avec python
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
Comment enregistrer les informations de point caractéristique de l'image dans un fichier et l'utiliser pour la mise en correspondance
[Python] Comment gérer l'erreur d'instance is "is instance () arg 2 doit être un type ou un tuple de types"
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 7 Comment créer un module
Comment convertir / restaurer une chaîne avec [] en python
Mémo connecté à HiveServer2 d'EMR avec python
Comment utiliser pip, un système de gestion de paquets indispensable pour utiliser Python
Remarques sur l'utilisation d'AIST Spacon ABCI
J'ai essayé de résumer comment utiliser matplotlib de python
[Python] Comment dessiner un graphique linéaire avec Matplotlib
Comment identifier l'élément avec le plus petit nombre de caractères dans une liste Python?
Comment écrire un type liste / dictionnaire de Python3
Comment vérifier s'il est dans le type de dictionnaire (Dictionary, Hash) en utilisant tout ou partie
Comment utiliser le mode interactif python avec git bash
Comment utiliser Python Kivy ① ~ Bases du langage Kv ~
Utilisation pour appeler une méthode d'une instance avant qu'elle ne soit renvoyée par __new__
Comment vérifier en Python si l'un des éléments d'une liste est dans une autre liste
L'explication la plus simple au monde sur la création de LINE BOT (1) [Account preparation]