ajout partie sur p-uplets nommés, typo
This commit is contained in:
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
> ***Contenu*** : Notions introduites : le type conteneur, avec les listes, les tuples, parcours de séquences.
|
> ***Contenu*** : Notions introduites : le type conteneur, avec les listes, les tuples, les p-uplets nommés, parcours de séquences.
|
||||||
> ***Compétences*** : Comprendre la différence entre une liste python et un tuple. Maîtriser la création de conteneurs sur Python.
|
> ***Compétences*** : Comprendre la différence entre une liste python et un tuple. Maîtriser la création de conteneurs sur Python. Savoir utiliser les p-uplets nommés.
|
||||||
|
|
||||||
## Le programme
|
## Le programme
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
Les types *conteneurs* comme les tuples ou les listes permettent de stocker des objets, et proposent des méthodes d'accès, de modification et d'itération sur ces mêmes objets.
|
Les types *conteneurs* comme les tuples ou les listes permettent de stocker des objets, et proposent des méthodes d'accès, de modification et d'itération sur ces mêmes objets.
|
||||||
|
|
||||||
Ici nous allons voir deux types de conteneurs en particulier : les tuples, les listes. En apprenant à créer et à manipuler ces types d'objets, cela nous permettra de travailler sur un grand nombre de données de manière rapide et efficace.
|
Ici nous allons voir plusieurs types de conteneurs : les listes, les tuples et les p-uplets nommés. En apprenant à créer et à manipuler ces types d'objets, cela nous permettra de travailler sur un grand nombre de données de manière rapide et efficace.
|
||||||
|
|
||||||
--------
|
--------
|
||||||
|
|
||||||
@@ -294,7 +294,81 @@ print(t)
|
|||||||
|
|
||||||
- Le tuple lui-même reste le même (il contient toujours trois éléments et les deux premiers sont toujours 1 et 2), mais la liste à l'intérieur du tuple a été modifiée.
|
- Le tuple lui-même reste le même (il contient toujours trois éléments et les deux premiers sont toujours 1 et 2), mais la liste à l'intérieur du tuple a été modifiée.
|
||||||
|
|
||||||
- C'est pourquoi on dit que les tuples peuvent "contenir" des éléments mutables.
|
- C'est pourquoi on dit que les tuples peuvent "contenir" des éléments mutables.
|
||||||
|
|
||||||
|
------------
|
||||||
|
|
||||||
|
## Les p-uplets nommés (namedtuple)
|
||||||
|
|
||||||
|
Lorsqu'on utilise un tuple classique, on accède aux éléments par leur indice. Cela peut rendre le code difficile à lire, surtout quand le tuple contient plusieurs valeurs.
|
||||||
|
|
||||||
|
```python
|
||||||
|
# Tuple classique représentant un élève
|
||||||
|
eleve = ("Alice", 16, "1ère NSI")
|
||||||
|
print(eleve[0]) # Le prénom
|
||||||
|
print(eleve[1]) # L'âge
|
||||||
|
```
|
||||||
|
|
||||||
|
Les **p-uplets nommés** (ou *named tuples*) permettent d'accéder aux éléments par leur nom, tout en conservant les avantages des tuples (immutabilité, performance).
|
||||||
|
|
||||||
|
### Création d'un p-uplet nommé
|
||||||
|
|
||||||
|
Pour utiliser les p-uplets nommés, on importe `namedtuple` depuis le module `collections` :
|
||||||
|
|
||||||
|
```python
|
||||||
|
from collections import namedtuple
|
||||||
|
|
||||||
|
# On définit un nouveau type "Eleve" avec trois champs
|
||||||
|
Eleve = namedtuple('Eleve', ['prenom', 'age', 'classe'])
|
||||||
|
|
||||||
|
# On crée une instance de ce type
|
||||||
|
alice = Eleve("Alice", 16, "1ère NSI")
|
||||||
|
bob = Eleve(prenom="Bob", age=17, classe="Terminale NSI")
|
||||||
|
```
|
||||||
|
|
||||||
|
### Accès aux éléments
|
||||||
|
|
||||||
|
On peut maintenant accéder aux éléments par leur nom :
|
||||||
|
|
||||||
|
```python
|
||||||
|
print(alice.prenom) # Alice
|
||||||
|
print(alice.age) # 16
|
||||||
|
print(bob.classe) # Terminale NSI
|
||||||
|
```
|
||||||
|
|
||||||
|
L'accès par indice reste possible :
|
||||||
|
|
||||||
|
```python
|
||||||
|
print(alice[0]) # Alice (équivalent à alice.prenom)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Exemple : coordonnées géographiques
|
||||||
|
|
||||||
|
```python
|
||||||
|
from collections import namedtuple
|
||||||
|
|
||||||
|
Coordonnees = namedtuple('Coordonnees', ['latitude', 'longitude'])
|
||||||
|
|
||||||
|
paris = Coordonnees(48.8566, 2.3522)
|
||||||
|
lyon = Coordonnees(latitude=45.7640, longitude=4.8357)
|
||||||
|
|
||||||
|
print(f"Paris : {paris.latitude}°N, {paris.longitude}°E")
|
||||||
|
```
|
||||||
|
|
||||||
|
### Avantages des p-uplets nommés
|
||||||
|
|
||||||
|
- **Lisibilité** : `point.x` est plus clair que `point[0]`
|
||||||
|
- **Auto-documentation** : le code s'explique de lui-même
|
||||||
|
- **Immutabilité** : comme les tuples classiques, ils ne peuvent pas être modifiés
|
||||||
|
- **Compatibilité** : ils fonctionnent partout où un tuple est attendu
|
||||||
|
|
||||||
|
### À retenir
|
||||||
|
|
||||||
|
| Opération | Résultat |
|
||||||
|
| --------- | -------- |
|
||||||
|
| `p.champ` | Renvoie la valeur du champ nommé |
|
||||||
|
| `p[i]` | Renvoie l'élément d'indice i (comme un tuple classique) |
|
||||||
|
| `p._fields` | Renvoie un tuple contenant les noms des champs |
|
||||||
|
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
|||||||
@@ -65,17 +65,7 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": "### Exercice 1 : Création de listes\n\n1. Créer une liste contenant l'ensemble des noms des personnes dans la salle de TP\n2. Créer une liste contenant l'ensemble des entiers pairs entre 0 et 20 inclus,\n3. Afficher uniquement les entiers de la liste, construit à la question 2, qui sont multiples de 4.\n4. Créer une fonction `aleatoire` qui renvoie une liste de valeurs aléatoires. Elle prend 3 entiers en paramètre :\n - $n$ : le nombre d'éléments de la liste\n - $min$ : la valeur minimale possible\n - $max$ : la valeur maximale possible"
|
||||||
"### Exercice 1 : Création de listes\n",
|
|
||||||
"\n",
|
|
||||||
"1. Créer une liste contenant l'ensemble des noms des personnes dans la salle de TP\n",
|
|
||||||
"2. Créer une liste contenant l'ensemble des entiers pairs entre 0 et 20 inclus,\n",
|
|
||||||
"3. Afficher uniquement les entiers de la liste, construit à la question 2, qui sont multiples de 4.\n",
|
|
||||||
"4. Créer une fonction `aleatoire` qui renvoieune liste de valeurs aléatoires. Elle prend 3 entiers en paramètre :\n",
|
|
||||||
" - $n$ : le nombre d'éléments de la liste\n",
|
|
||||||
" - $min$ : la valeur minimale possible\n",
|
|
||||||
" - $max$ : la valeur maximale possible"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -413,19 +403,7 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": "1. Écrire une fonction `miroir_vertical` qui prend en paramètre une matrice et a pour effet de bord de réaliser l'effet miroir vertical sur les valeurs de la matrice.\n\n<table style=\"margin : 0 auto 0 auto; width : 100px;text-align:center;\">\n <caption style=\"caption-side:bottom;\">Fig.3.1 - Effet miroir vertical de la Fig.3</caption>\n<tr><td>⚪</td><td>⚪</td><td>⚫</td><td>⚪</td><td>⚪</td><td>⚪</td></tr>\n<tr><td>⚪</td><td>⚫</td><td>⚪</td><td>⚫</td><td>⚪</td><td>⚪</td></tr>\n<tr><td>⚫</td><td>⚪</td><td>⚪</td><td>⚪</td><td>⚫</td><td>⚪</td></tr>\n<tr><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td></tr>\n<tr><td>⚫</td><td>⚪</td><td>⚪</td><td>⚫</td><td>⚪</td><td>⚫</td></tr>\n<tr><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td></tr>\n</table>"
|
||||||
"1. Écrire une méthode `miroir_vertical` qui prend en paramètre une matrice et a pour effet de bord de réaliser l'effet miroir vertical sur les valeurs de la matrice.\n",
|
|
||||||
"\n",
|
|
||||||
"<table style=\"margin : 0 auto 0 auto; width : 100px;text-align:center;\">\n",
|
|
||||||
" <caption style=\"caption-side:bottom;\">Fig.3.1 - Effet miroir vertical de la Fig.4</caption>\n",
|
|
||||||
"<tr><td>⚪</td><td>⚪</td><td>⚫</td><td>⚪</td><td>⚪</td><td>⚪</td></tr>\n",
|
|
||||||
"<tr><td>⚪</td><td>⚫</td><td>⚪</td><td>⚫</td><td>⚪</td><td>⚪</td></tr>\n",
|
|
||||||
"<tr><td>⚫</td><td>⚪</td><td>⚪</td><td>⚪</td><td>⚫</td><td>⚪</td></tr>\n",
|
|
||||||
"<tr><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td></tr>\n",
|
|
||||||
"<tr><td>⚫</td><td>⚪</td><td>⚪</td><td>⚫</td><td>⚪</td><td>⚫</td></tr>\n",
|
|
||||||
"<tr><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td></tr>\n",
|
|
||||||
"</table>"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -439,19 +417,7 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": "2. Écrire une fonction `miroir_horizontal` qui prend en paramètre une matrice et a pour effet de bord de réaliser l'effet miroir horizontal sur les valeurs de la matrice.\n\n<table style=\"margin : 0 auto 0 auto; width : 100px;text-align:center;\">\n <caption style=\"caption-side:bottom;\">Fig.3.2 - Effet miroir horizontal de la Fig.3</caption>\n<tr><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td></tr>\n<tr><td>⚫</td><td>⚪</td><td>⚫</td><td>⚪</td><td>⚪</td><td>⚫</td></tr>\n<tr><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td></tr>\n<tr><td>⚪</td><td>⚫</td><td>⚪</td><td>⚪</td><td>⚪</td><td>⚫</td></tr>\n<tr><td>⚪</td><td>⚪</td><td>⚫</td><td>⚪</td><td>⚫</td><td>⚪</td></tr>\n<tr><td>⚪</td><td>⚪</td><td>⚪</td><td>⚫</td><td>⚪</td><td>⚪</td></tr>\n</table>"
|
||||||
"2. Écrire une méthode `miroir_horizontal` qui prend en paramètre une matrice et a pour effet de bord de réaliser l'effet miroir horizontal sur les valeurs de la matrice.\n",
|
|
||||||
"\n",
|
|
||||||
"<table style=\"margin : 0 auto 0 auto; width : 100px;text-align:center;\">\n",
|
|
||||||
" <caption style=\"caption-side:bottom;\">Fig.3.2 - Effet miroir horizontal de la Fig.4</caption>\n",
|
|
||||||
"<tr><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td></tr>\n",
|
|
||||||
"<tr><td>⚫</td><td>⚪</td><td>⚫</td><td>⚪</td><td>⚪</td><td>⚫</td></tr>\n",
|
|
||||||
"<tr><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td></tr>\n",
|
|
||||||
"<tr><td>⚪</td><td>⚫</td><td>⚪</td><td>⚪</td><td>⚪</td><td>⚫</td></tr>\n",
|
|
||||||
"<tr><td>⚪</td><td>⚪</td><td>⚫</td><td>⚪</td><td>⚫</td><td>⚪</td></tr>\n",
|
|
||||||
"<tr><td>⚪</td><td>⚪</td><td>⚪</td><td>⚫</td><td>⚪</td><td>⚪</td></tr>\n",
|
|
||||||
"</table>"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -465,19 +431,7 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": "3. Écrire une fonction `rotation_horaire` qui prend en paramètre une matrice et renvoie une matrice dont les valeurs correspondent à la rotation dans le sens horaire des valeurs de la matrice.\n\n<table style=\"margin : 0 auto 0 auto; width : 100px;text-align:center;\">\n <caption style=\"caption-side:bottom;\">Fig.3.3 - Rotation horaire de la Fig.3</caption>\n<tr><td>⚫</td><td>⚫</td><td>⚫</td><td>⚪</td><td>⚪</td><td>⚪</td></tr>\n<tr><td>⚫</td><td>⚪</td><td>⚫</td><td>⚫</td><td>⚪</td><td>⚪</td></tr>\n<tr><td>⚫</td><td>⚫</td><td>⚫</td><td>⚪</td><td>⚫</td><td>⚪</td></tr>\n<tr><td>⚫</td><td>⚪</td><td>⚫</td><td>⚪</td><td>⚪</td><td>⚫</td></tr>\n<tr><td>⚫</td><td>⚪</td><td>⚫</td><td>⚪</td><td>⚫</td><td>⚪</td></tr>\n<tr><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td><td>⚪</td><td>⚪</td></tr>\n</table>"
|
||||||
"3. Écrire une fonction `rotation_horaire` qui prend en paramètre une matrice et renvoie une matrice dont les valeurs correspondent à la rotation dans le sens horaire des valeurs de la matrice.\n",
|
|
||||||
"\n",
|
|
||||||
"<table style=\"margin : 0 auto 0 auto; width : 100px;text-align:center;\">\n",
|
|
||||||
" <caption style=\"caption-side:bottom;\">Fig.3.3 - Roration horaire de la Fig.4</caption>\n",
|
|
||||||
"<tr><td>⚫</td><td>⚫</td><td>⚫</td><td>⚪</td><td>⚪</td><td>⚪</td></tr>\n",
|
|
||||||
"<tr><td>⚫</td><td>⚪</td><td>⚫</td><td>⚫</td><td>⚪</td><td>⚪</td></tr>\n",
|
|
||||||
"<tr><td>⚫</td><td>⚫</td><td>⚫</td><td>⚪</td><td>⚫</td><td>⚪</td></tr>\n",
|
|
||||||
"<tr><td>⚫</td><td>⚪</td><td>⚫</td><td>⚪</td><td>⚪</td><td>⚫</td></tr>\n",
|
|
||||||
"<tr><td>⚫</td><td>⚪</td><td>⚫</td><td>⚪</td><td>⚫</td><td>⚪</td></tr>\n",
|
|
||||||
"<tr><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td><td>⚪</td><td>⚪</td></tr>\n",
|
|
||||||
"</table>"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -491,19 +445,7 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": "4. Écrire une fonction `rotation_anti_horaire` qui prend en paramètre une matrice et renvoie une matrice dont les valeurs correspondent à la rotation dans le sens anti-horaire des valeurs de la matrice.\n\n<table style=\"margin : 0 auto 0 auto; width : 100px;text-align:center;\">\n <caption style=\"caption-side:bottom;\">Fig.3.4 - Rotation anti-horaire de la Fig.3</caption>\n<tr><td>⚪</td><td>⚪</td><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td></tr>\n<tr><td>⚪</td><td>⚫</td><td>⚪</td><td>⚫</td><td>⚪</td><td>⚫</td></tr>\n<tr><td>⚫</td><td>⚪</td><td>⚪</td><td>⚫</td><td>⚪</td><td>⚫</td></tr>\n<tr><td>⚪</td><td>⚫</td><td>⚪</td><td>⚫</td><td>⚫</td><td>⚫</td></tr>\n<tr><td>⚪</td><td>⚪</td><td>⚫</td><td>⚫</td><td>⚪</td><td>⚫</td></tr>\n<tr><td>⚪</td><td>⚪</td><td>⚪</td><td>⚫</td><td>⚫</td><td>⚫</td></tr>\n</table>"
|
||||||
"4. Écrire une fonction `rotation_anti_horaire` qui prend en paramètre une matrice et renvoie une matrice dont les valeurs correspondent à la rotation dans le sens anti-horaire des valeurs de la matrice.\n",
|
|
||||||
"\n",
|
|
||||||
"<table style=\"margin : 0 auto 0 auto; width : 100px;text-align:center;\">\n",
|
|
||||||
" <caption style=\"caption-side:bottom;\">Fig.3.4 - Roration anti-horaire de la Fig.4</caption>\n",
|
|
||||||
"<tr><td>⚪</td><td>⚪</td><td>⚫</td><td>⚫</td><td>⚫</td><td>⚫</td></tr>\n",
|
|
||||||
"<tr><td>⚪</td><td>⚫</td><td>⚪</td><td>⚫</td><td>⚪</td><td>⚫</td></tr>\n",
|
|
||||||
"<tr><td>⚫</td><td>⚪</td><td>⚪</td><td>⚫</td><td>⚪</td><td>⚫</td></tr>\n",
|
|
||||||
"<tr><td>⚪</td><td>⚫</td><td>⚪</td><td>⚫</td><td>⚫</td><td>⚫</td></tr>\n",
|
|
||||||
"<tr><td>⚪</td><td>⚪</td><td>⚫</td><td>⚫</td><td>⚪</td><td>⚫</td></tr>\n",
|
|
||||||
"<tr><td>⚪</td><td>⚪</td><td>⚪</td><td>⚫</td><td>⚫</td><td>⚫</td></tr>\n",
|
|
||||||
"</table>"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
@@ -569,4 +511,4 @@
|
|||||||
},
|
},
|
||||||
"nbformat": 4,
|
"nbformat": 4,
|
||||||
"nbformat_minor": 2
|
"nbformat_minor": 2
|
||||||
}
|
}
|
||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
> ***Contenue*** : Notions introduites : le type dictionnaire
|
> ***Contenu*** : Notions introduites : le type dictionnaire
|
||||||
> ***Compétences*** : Construire une entrée de dictionnaire, savoir itérer sur es élèments d'un dictionnaire, connaître les méthodes.
|
> ***Compétences*** : Construire une entrée de dictionnaire, savoir itérer sur les éléments d'un dictionnaire, connaître les méthodes.
|
||||||
|
|
||||||
## Le programme
|
## Le programme
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ Les dictionnaires sont des conteneurs, comme les listes et tuples, vus précéde
|
|||||||
|
|
||||||
Par contre, contrairement aux types de conteneurs précédémment étudiés, on ne peut pas accéder au contenu d'un dictionnaire à l'aide d'un indice : un dictionnaire n'est pas une séquence.
|
Par contre, contrairement aux types de conteneurs précédémment étudiés, on ne peut pas accéder au contenu d'un dictionnaire à l'aide d'un indice : un dictionnaire n'est pas une séquence.
|
||||||
|
|
||||||
Si on peut bien modifier les valeurs dans un dictionnaire, chaque clé est *unique et non mutable*. Elle peut être une chaîne de caractères, un nombre, un tulle de nombre...
|
Si on peut bien modifier les valeurs dans un dictionnaire, chaque clé est *unique et non mutable*. Elle peut être une chaîne de caractères, un nombre, un tuple de nombres...
|
||||||
|
|
||||||
Enfin, les valeurs, quant à elles, peuvent être quelconques.
|
Enfin, les valeurs, quant à elles, peuvent être quelconques.
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ dico = dict()
|
|||||||
|
|
||||||
Pour initialiser un dictionnaire avec des valeurs :
|
Pour initialiser un dictionnaire avec des valeurs :
|
||||||
|
|
||||||
```pytho
|
```python
|
||||||
perso = {"prenom" : "Bilbo", "age" : 111}
|
perso = {"prenom" : "Bilbo", "age" : 111}
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -128,7 +128,7 @@ Par défaut, on itère sur les clés.
|
|||||||
| x in dico.keys() | renvoie True si une clé de dico est égale à x, False sinon |
|
| x in dico.keys() | renvoie True si une clé de dico est égale à x, False sinon |
|
||||||
| dico[k] = v | Modifie la valeur v associée à la clé k ou l'ajoute si elle n'existe pas |
|
| dico[k] = v | Modifie la valeur v associée à la clé k ou l'ajoute si elle n'existe pas |
|
||||||
| dico.get(k, v) | Renvoie la valeur associé à la clé k. Si la clé k n'existe pas, renvoie la valeur v |
|
| dico.get(k, v) | Renvoie la valeur associé à la clé k. Si la clé k n'existe pas, renvoie la valeur v |
|
||||||
| del dico(k) | Enlève du dictionnaire la clé k |
|
| del dico[k] | Enlève du dictionnaire la clé k |
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
## Structures imbriquées et compréhensions
|
## Structures imbriquées et compréhensions
|
||||||
|
|
||||||
> Il est possible de combiner listes, tuples, et dictionnaires. Avec la syntaxe des compréhensions, l'écriture des listes et dictionnaires semble plus élègante.
|
> Il est possible de combiner listes, tuples, et dictionnaires. Avec la syntaxe des compréhensions, l'écriture des listes et dictionnaires semble plus élégante.
|
||||||
|
|
||||||
--------
|
--------
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ Ici, on crée une liste de trois tuples.
|
|||||||
|
|
||||||
Que peuvent représenter ces trois tuples ?
|
Que peuvent représenter ces trois tuples ?
|
||||||
|
|
||||||
On peut vérifier qu'il s'agut bien d'un tuple :
|
On peut vérifier qu'il s'agit bien d'un tuple :
|
||||||
|
|
||||||
```python
|
```python
|
||||||
t = lst[1]
|
t = lst[1]
|
||||||
|
|||||||
Reference in New Issue
Block a user