%% nav-debut : généré par gen_navigation.py, ne pas modifier à la main %%
> [!nav]
> ↩ [[Code et Développement/Programmation/Lecture de Code - Python/Lecture de code - Python|Accueil · Lecture de code - Python]]
>
> | [[Code et Développement/Programmation/Lecture de Code - Python/08_tranches_sequences\|← Tranches et séquences]] | [[Code et Développement/Programmation/Lecture de Code - Python/10_ensembles\|Ensembles →]] |
> |:---|---:|
%% nav-fin %%
# Tuples
Un tuple est une séquence **immuable** (non modifiable) de valeurs, délimitée par des parenthèses.
---
## Création
```python
t = (1, 2, 3)
t = (42,) # tuple à 1 élément : la virgule est obligatoire
t = () # tuple vide
t = 1, 2, 3 # les parenthèses sont optionnelles
```
---
## Accès et slicing
La syntaxe est celle des listes.
```python
t = (10, 20, 30, 40)
t[0] # vaut 10
t[-1] # vaut 40
t[1:3] # vaut (20, 30)
len(t) # vaut 4
```
Un tuple ne se modifie pas.
```python
t[0] = 99 # TypeError : un tuple est immuable
```
---
## Déballage (unpacking)
```python
x, y = (3, 7) # x vaut 3, y vaut 7
a, b, c = "abc" # a vaut 'a', b vaut 'b', c vaut 'c'
# Échanger deux variables
x, y = y, x
```
---
## Retour de fonctions
Une fonction renvoie souvent plusieurs valeurs sous forme de tuple.
```python
def min_max(lst):
return min(lst), max(lst)
mini, maxi = min_max([3, 1, 4, 1, 5]) # mini vaut 1, maxi vaut 5
```
---
## Tuple vs liste
| | Tuple | Liste |
|---|---|---|
| Syntaxe | `(1, 2, 3)` | `[1, 2, 3]` |
| Modifiable | ❌ non | ✅ oui |
| Utilisation | coordonnées, retour de fonction | collection évolutive |
## À vous
**À manipuler :** prédisez la sortie, ligne par ligne.
```sq-affiche
x, y = 3, 8
x, y = y, x
print(x)
print(y)
print((x, y))
---
saisie: lignes
réponse: 8\n3\n(8, 3)
explication: x, y = y, x échange les deux valeurs en une seule instruction. print d'un tuple affiche les parenthèses.
```
```sq-affiche
t = (5, 1, 4)
a, b, c = t
print(a + c)
print(t[1:])
print(len((7,)))
---
saisie: lignes
réponse: 9\n(1, 4)\n1
explication: le déballage range 5, 1 et 4 dans a, b et c. Une tranche d'un tuple est un tuple. (7,) est un tuple à un élément.
```
%% nav-debut : généré par gen_navigation.py, ne pas modifier à la main %%
> [!nav]
> ↩ [[Code et Développement/Programmation/Lecture de Code - Python/Lecture de code - Python|Accueil · Lecture de code - Python]]
>
> | [[Code et Développement/Programmation/Lecture de Code - Python/08_tranches_sequences\|← Tranches et séquences]] | [[Code et Développement/Programmation/Lecture de Code - Python/10_ensembles\|Ensembles →]] |
> |:---|---:|
%% nav-fin %%