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 Prochaine révisionLes deux révisions suivantes | ||
python:bases:listes [2024/02/28 18:32] – [1. Introduction] phil | python:bases:listes [2024/02/29 08:20] – [Résumé] phil | ||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
===== Python - Listes ===== | ===== Python - Listes ===== | ||
- | [Mise à jour le : 16/12/2022] | + | [Mise à jour le : 28/2/2024] |
* **Source** | * **Source** | ||
Ligne 38: | Ligne 38: | ||
// | // | ||
<code python *.py> | <code python *.py> | ||
- | # Deux variables pointent vers le même objet | + | # Deux variables pointent vers le même objet (aliasing) |
t1 = [' | t1 = [' | ||
t2 = t1 # Python ne crée pas un autre tableau mais une référence (pointeur) vers t1 | t2 = t1 # Python ne crée pas un autre tableau mais une référence (pointeur) vers t1 | ||
Ligne 51: | Ligne 51: | ||
==== 2. Construction ==== | ==== 2. Construction ==== | ||
+ | {{ : | ||
<code python *.py> | <code python *.py> | ||
# Liste vide | # Liste vide | ||
Ligne 64: | Ligne 64: | ||
t = [0]*1000 # Création d'une liste de 1000 cases initialisées à 0 | t = [0]*1000 # Création d'une liste de 1000 cases initialisées à 0 | ||
</ | </ | ||
+ | |||
+ | {{ : | ||
<callout type=" | <callout type=" | ||
Ligne 102: | Ligne 104: | ||
//Exemple// | //Exemple// | ||
+ | {{ : | ||
<code python *.py> | <code python *.py> | ||
impaire = [1, | impaire = [1, | ||
Ligne 116: | Ligne 119: | ||
//Exemple// | //Exemple// | ||
+ | {{ : | ||
<code python *.py> | <code python *.py> | ||
t1 = [1,2,3] | t1 = [1,2,3] | ||
t2 = [4,5,6] | t2 = [4,5,6] | ||
t3 = t1 + t2 | t3 = t1 + t2 | ||
- | print(t3) | + | print(t3) |
+ | |||
+ | # Résultat : [1, | ||
</ | </ | ||
==== 5. Suppression d' | ==== 5. Suppression d' | ||
Ligne 140: | Ligne 146: | ||
print(t3) # Résultat : [1, 3, 4, 5, 6] | print(t3) # Résultat : [1, 3, 4, 5, 6] | ||
- | # Slicing | + | # Slicing |
t3 = [1, 2, 3, 4, 5, 6] | t3 = [1, 2, 3, 4, 5, 6] | ||
t3[2:4]=[] | t3[2:4]=[] | ||
Ligne 158: | Ligne 164: | ||
i=0 | i=0 | ||
while i< | while i< | ||
- | print(adresse[i]) | + | print(adresse[i]+" ", end='' |
i+=1 | i+=1 | ||
+ | | ||
+ | # Résultat | ||
+ | Lycée Pierre-Emile Martin 1 Avenue de Gionne 18000 Bourges | ||
</ | </ | ||
Ligne 168: | Ligne 177: | ||
# solution 1. Utilisation d'un indice | # solution 1. Utilisation d'un indice | ||
- | for i in range len(adresse): | + | for i in range(len(adresse)): # renvoit : Lycée Pierre-Emile Martin 1 Avenue de Gionne 18000 Bourges |
- | elemt = adresse[i] | + | elemt = adresse[i]+' ' |
- | print(elemt) | + | print(elemt, |
| | ||
# solution 2. Itération directe sur les éléments de la liste (plus simple !) | # solution 2. Itération directe sur les éléments de la liste (plus simple !) | ||
for elemt in adresse: # elemt va prendre les valeurs successives des éléments de ma_liste | for elemt in adresse: # elemt va prendre les valeurs successives des éléments de ma_liste | ||
- | print(elemt) | + | print(elemt+" ", end='' |
</ | </ | ||
- | <callout type=" | + | <callout type=" |
* Utilisation de **enumerate** | * Utilisation de **enumerate** | ||
- | <callout type=" | + | <callout type=" |
+ | |||
+ | * __Syntaxe__ | ||
+ | * enumerate(iterable) | ||
+ | * enumerate(iterable, | ||
<code python *.py> | <code python *.py> | ||
adresse =[' | adresse =[' | ||
for element in enumerate(adresse): | for element in enumerate(adresse): | ||
- | print(element) | + | print(element) |
- | (1, ' | + | |
- | # pour récupérer la position indépendamment de la valeur, on utilise deux variables | + | # Résultat |
+ | (0, ' | ||
+ | (1, ' | ||
+ | |||
+ | # Pour récupérer la position indépendamment de la valeur, on utilise deux variables | ||
for i, val in enumerate(adresse): | for i, val in enumerate(adresse): | ||
print(val," | print(val," | ||
+ | |||
# Résultat | # Résultat | ||
# Lycée est à la position 0 | # Lycée est à la position 0 | ||
# Pierre-Emile est à la position 1 etc. | # Pierre-Emile est à la position 1 etc. | ||
</ | </ | ||
+ | {{ : | ||
==== 7. Affectation sur les slices ==== | ==== 7. Affectation sur les slices ==== | ||
- | <callout type=" | + | <callout type=" |
// Exemple //: remplacement d' | // Exemple //: remplacement d' | ||
+ | {{ : | ||
<code python *.py> | <code python *.py> | ||
l=[0, | l=[0, | ||
l[4: | l[4: | ||
- | # Les éléments | + | # Les éléments |
- | # puis remplacés par 4,5,6 | + | # puis remplacés par les valeurs |
+ | # 6 est ajouté avant 7. 7,8,9 sont décalés) | ||
# Résultat : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] | # Résultat : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] | ||
</ | </ | ||
// Exemple //: effacement d' | // Exemple //: effacement d' | ||
+ | {{ : | ||
<code python *.py> | <code python *.py> | ||
l=[0, | l=[0, | ||
- | l[4: | + | l[4: |
- | # | + | # |
# Résultat : [0, | # Résultat : [0, | ||
</ | </ | ||
Ligne 218: | Ligne 238: | ||
==== 8. Compréhensions de liste ==== | ==== 8. Compréhensions de liste ==== | ||
- | <callout type=" | + | <callout type=" |
+ | // | ||
+ | //liste// = **[**// | ||
- | //Exemples// | + | //Exemple de création d'une liste par compréhension// |
+ | |||
+ | <code python *.py> | ||
+ | # Forme habituelle | ||
+ | t = [0]*100 | ||
+ | for i in range(100): | ||
+ | t[i] = 3*i+1 | ||
+ | |||
+ | # Notation par compréhension | ||
+ | t = [3*i+1 for i in range 100] | ||
+ | </ | ||
+ | //Exemples de traitement de listes par compréhension// | ||
+ | {{ : | ||
<code python *.py> | <code python *.py> | ||
prenom = [' | prenom = [' | ||
Ligne 240: | Ligne 274: | ||
[x for x in range(i,j)] | [x for x in range(i,j)] | ||
# ou | # ou | ||
+ | # La fonction prédéfinie list transforme l' | ||
list(range(i, | list(range(i, | ||
</ | </ | ||
Ligne 251: | Ligne 286: | ||
t = [[1, | t = [[1, | ||
</ | </ | ||
- | + | {{ : | |
- | {{ : | + | |
- | * **Accès à un élément** | + | |
- | <code python *.py> | + | |
- | a = t[2][1] # renvoi 2 | + | |
- | </ | + | |
* **Construction par compréhension** | * **Construction par compréhension** | ||
Ligne 262: | Ligne 292: | ||
# Tableau 3 x 5 | # Tableau 3 x 5 | ||
t = [[0]*5 for i in range(3)] | t = [[0]*5 for i in range(3)] | ||
+ | </ | ||
+ | |||
+ | {{ : | ||
+ | <callout type=" | ||
+ | |||
+ | * **Accès à un élément** | ||
+ | <code python *.py> | ||
+ | a = t[2][1] # renvoi 2 | ||
</ | </ | ||
Ligne 359: | Ligne 397: | ||
* On peut supprimer des éléments d'une liste avec le mot-clé **del**, la méthode **remove** ou une opération de slice. | * On peut supprimer des éléments d'une liste avec le mot-clé **del**, la méthode **remove** ou une opération de slice. | ||
* On peut créer des fonctions attendant un nombre inconnu de paramètres en plaçant une ** * ** devant le nom du paramètre. | * On peut créer des fonctions attendant un nombre inconnu de paramètres en plaçant une ** * ** devant le nom du paramètre. | ||
- | * Les compréhensions de liste permettent de parcourir et filtrer une séquence | + | * Les compréhensions de liste permettent de parcourir et filtrer une séquence en renvoyant une nouvelle avec la syntaxe \\ // |
* Un tuple est une séquence pouvant contenir des objets. À la différence de la liste, le tuple ne peut pas être modifié une fois créé. | * Un tuple est une séquence pouvant contenir des objets. À la différence de la liste, le tuple ne peut pas être modifié une fois créé. | ||