Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
python:bases:tuples [2022/01/31 19:21] – [3. Accès aux éléments] phil | python:bases:tuples [2022/08/29 18:52] (Version actuelle) – [1. Introduction] phil | ||
---|---|---|---|
Ligne 12: | Ligne 12: | ||
* ** Mots-clés** : immuable, unpacking, tuple | * ** Mots-clés** : immuable, unpacking, tuple | ||
- | <note important>Les mots ci-dessous sont dits " | + | <callout type=" |
| and | continue | | and | continue | ||
Ligne 27: | Ligne 27: | ||
==== 1. Introduction ==== | ==== 1. Introduction ==== | ||
- | Le tuple est une séquence. Comme la liste, il référence des objets | + | Le tuple est une séquence. Comme la liste, il référence des objets |
- | <note Important>Un **tuple**, ou **P-uplet** est une liste de **constantes**. Il est **immuable** donc non modifiable. Les **parenthèses ( )** délimitent les **tuples**.</ | + | <callout type=" |
==== 2. Création ==== | ==== 2. Création ==== | ||
Ligne 36: | Ligne 36: | ||
<code python *.py> | <code python *.py> | ||
# Affectation simple | # Affectation simple | ||
- | tp = " | + | >>> |
- | tp = () # Création d'un tuple vide (peu d' | + | >>> |
- | tp = 6, # un élément nécessite une virgule | + | >>> |
# Les parenthèses sont obligatoires dès que l' | # Les parenthèses sont obligatoires dès que l' | ||
- | tp = 3, | + | >>> |
+ | >>> | ||
# Tuple contenant des tuples | # Tuple contenant des tuples | ||
- | t2d = (1," | + | >>> |
- | (2," | + | # |
- | # Affectation | + | # Affectation |
- | a,b,c = 1,2,3 # a=1, b=2, c=3 | + | >>> |
</ | </ | ||
- | <note important>Un tuple avec **un seul élément** nécessite une **virgule**.</ | + | <callout type=" |
==== 3. Accès aux éléments ==== | ==== 3. Accès aux éléments ==== | ||
Ligne 59: | Ligne 60: | ||
# Accès à une valeur en lecture | # Accès à une valeur en lecture | ||
tp = " | tp = " | ||
+ | >>> | ||
>>> | >>> | ||
>>> | >>> | ||
# i peut être négatif ! | # i peut être négatif ! | ||
- | >>> | + | >>> |
</ | </ | ||
- | ====4. Construction==== | + | ==== 4. Construction ==== |
+ | * **Issue d'une concatenation avec +** | ||
- | * **Concatenation avec +** | + | <callout type=" |
- | + | ||
- | <note>Bien que le type tuple soit immuable, il est tout à fait légal d'" | + | |
//Exemple// | //Exemple// | ||
<code python *.py> | <code python *.py> | ||
- | tuple1 = (1, 2,) | + | >>> |
- | tuple2 = (3, 4,) | + | >>> |
- | print(' | + | >>> |
</ | </ | ||
- | * ** Concaténation | + | * ** Issue d'une concaténation |
//Exemple// | //Exemple// | ||
<code python *.py> | <code python *.py> | ||
- | tuple3 = 3*tuple1 # (1, | + | >>> |
</ | </ | ||
- | * **A partir | + | * **Issue d'une liste** |
//Exemple// | //Exemple// | ||
<code python *.py> | <code python *.py> | ||
- | liste = list(range(10)) # résultat[0, | + | >>> |
- | liste[9] = ' | + | >>> |
- | del liste [2:5] # résultat : [0, 1, 5, 6, 7, 8, ' | + | >>> |
- | mon_tuple = tuple(liste) # résultat : (0, 1, 5, 6, 7, 8, ' | + | >>> |
</ | </ | ||
Ligne 97: | Ligne 98: | ||
<code python *.py> | <code python *.py> | ||
- | t = " | + | >>> |
- | " | + | >>> |
- | " | + | >>> |
</ | </ | ||
====6. Modification !==== | ====6. Modification !==== | ||
- | <note warning> | + | <callout type="warning" icon=" |
//Exemple// | //Exemple// | ||
<code python *.py> | <code python *.py> | ||
- | tp = " | + | >>> |
>>> | >>> | ||
>>> | >>> | ||
Ligne 114: | Ligne 115: | ||
# File "< | # File "< | ||
# TypeError: ' | # TypeError: ' | ||
- | lst = list(tp) | + | >>> |
>>> | >>> | ||
- | lst[2] = 3 # modification de la liste | + | >>> |
- | tp = tuple(lst) # conversion en un tuple | + | >>> |
>>> | >>> | ||
</ | </ | ||
Ligne 147: | Ligne 148: | ||
====8. tuple unpacking ==== | ====8. tuple unpacking ==== | ||
- | <note tip> | + | <callout type="tip" icon=" |
//Exemple 1// | //Exemple 1// | ||
Ligne 167: | Ligne 168: | ||
</ | </ | ||
- | <note warning>Les seules contraintes fixées par Python sont que : \\ | + | <callout icon=" |
- le terme à droite du signe = soit un itérable (tuple, liste, string, etc.) ; \\ | - le terme à droite du signe = soit un itérable (tuple, liste, string, etc.) ; \\ | ||
- le terme à gauche soit écrit comme un tuple ou une liste - notons tout de même que l' | - le terme à gauche soit écrit comme un tuple ou une liste - notons tout de même que l' | ||
- | - les deux termes aient la même longueur - en tout cas avec les concepts que l'on a vus jusqu' | + | - les deux termes aient la même longueur - en tout cas avec les concepts que l'on a vus jusqu' |
//Exemple 3// | //Exemple 3// | ||
- | <note tip> Il est possible de faire une boucle for qui itère sur une seule liste mais qui agit sur **plusieurs variables**.</ | + | <callout type="tip" icon=" |
<code python *.py> | <code python *.py> | ||
Ligne 189: | Ligne 190: | ||
====9. Extended unpacking==== | ====9. Extended unpacking==== | ||
- | <note>Le mécanisme ici est une extension de sequence unpacking ; Python vous autorise à mentionner une seule fois, parmi les variables qui apparaissent à gauche de l' | + | <callout type=" |
//Exemple 1// | //Exemple 1// | ||
Ligne 214: | Ligne 215: | ||
</ | </ | ||
- | <note conseil>On peut utiliser plusieurs fois la même variable dans la partie gauche de l' | + | <callout type=" |
Cette technique n'est utilisée en pratique que pour les parties de la structure dont on n'a que faire dans le contexte. Dans ces cas-là, il arrive qu'on utilise le nom de variable _. | Cette technique n'est utilisée en pratique que pour les parties de la structure dont on n'a que faire dans le contexte. Dans ces cas-là, il arrive qu'on utilise le nom de variable _. |