Listes Python
Les listes Python par David Latouche⚓︎
Les listes Python par compréhension⚓︎
Vidéo de Cédric Gerland⚓︎
Site de Pascal Ortiz⚓︎
Notion de liste et application aux images numériques⚓︎
Les listes en Python⚓︎
Une liste (ou list / array) en Python est une variable dans laquelle on peut mettre plusieurs variables.
Créer une liste en Python⚓︎
Pour créer une liste :
On peut voir le contenu de la liste en l'appelant :
Ajouter une valeur à une liste⚓︎
On peut ajouter les valeurs que l'on veut lors de la création de la liste Python :
Ou les ajouter après la création de la liste avec la méthode append
(qui signifie « ajouter » en anglais) :
>>> liste = []
>>> liste
[]
>>> liste.append(1)
>>> liste
[1]
>>> liste.append("ok")
>>> liste
[1, 'ok']
Il est possible de mélanger dans une même liste des variables de types différents. On peut d'ailleurs mettre une liste dans une liste.
Afficher un item d'une liste⚓︎
Pour lire une liste, on peut demander à voir l'index de la valeur concernée :
Le premier item commence toujours avec l'index0
. Pour lire le premier item, on utilise la valeur 0
, le deuxième on utilise la valeur 1
, etc.
Il est d'ailleurs possible de modifier une valeur avec son index :
>>> liste = ["a", "d", "c"]
>>> liste[0]
'a'
>>> liste[2]
'c'
>>> liste[2] = "x"
>>> liste
['a', 'd', 'x']
Supprimer une entrée avec un index⚓︎
Il est parfois nécessaire de supprimer une entrée de la liste. Pour cela, vous pouvez utiliser la fonction del
:
Supprimer une entrée avec sa valeur⚓︎
Il est possible de supprimer une entrée d'une liste avec sa valeur avec la méthode remove
:
Inverser les valeurs d'une liste⚓︎
On peut inverser les items d'une liste avec la méthode reverse
:
Compter le nombre d'items d'une liste⚓︎
Il est possible de compter le nombre d'items d'une liste avec la fonction len
:
Compter le nombre d'occurences d'une valeur⚓︎
Pour connaitre le nombre d'occurences d'une valeur dans une liste, vous pouvez utiliser la méthode count
:
Trouver l'index d'une valeur⚓︎
La méthode index
vous de connaître la position de l'item cherché :
Manipuler une liste⚓︎
Voici quelques astuces pour manipuler des listes :
>>> liste = [1, 10, 100, 250, 500]
>>> liste[0]
1
>>> liste[-1] # Cherche la dernière occurence
500
>>> liste[-4:] # Affiche les 4 dernières occurrences
[500, 250, 100, 10]
>>> liste[:] # Affiche toutes les occurences
[1, 10, 100, 250, 500]
>>> liste[2:4] = [69, 70]
[1, 10, 69, 70, 500]
>>> liste[:] = [] # vide la liste
[]
Parcours d'une liste⚓︎
Pour afficher les valeurs d'une liste, on peut utiliser une boucle :
Si on veut en plus récupérer l'index, on peut utiliser la fonction enumerate
:
Copier une liste⚓︎
Beaucoup de débutants font l'erreur de copier une liste de cette manière :
Or si on change une valeur de la liste y
, la liste x
sera elle aussi affectée par cette modification :
En fait, cette syntaxe permet de travailler sur un même élément nommé différemment.
Alors comment copier une liste qui sera indépendante ?
Pour des données plus complexes, on peut utiliser la fonction deepcopy
du module copy
:
>>> import copy
>>> x = [[1, 2], 2]
>>> y = copy.deepcopy(x)
>>> y[1] = [1, 2, 3]
>>> x
[[1, 2], 2]
>>> y
[[1, 2], [1, 2, 3]]
Transformer une chaîne en liste⚓︎
Parfois il peut être utile de transformer une chaîne de caractère en liste. Cela est possible avec la méthode split
:
>>> ma_chaine = "Jean-Claude:DUSSE:Galaswinda"
>>> ma_chaine.split(":")
['Jean-Claude', 'DUSSE', 'Galaswinda']
Transformer une liste en chaîne⚓︎
L'inverse est possible avec la méthode join
:
>>> liste = ["Jean-Claude", "DUSSE", "Galaswinda"]
>>> ":".join(liste)
'Jean-Claude:DUSSE:Galaswinda'
Trouver un item dans une liste⚓︎
Pour savoir si un élément est dans une liste, on peut utiliser le mot-clé in
de cette manière :
La fonction range
⚓︎
La fonction range
génère une liste composée d'une simple suite arithmétique :
Agrandir une liste par une liste⚓︎
Pour mettre bout à bout deux listes, on peut utiliser la méthode extend
:
>>> x = [1, 2, 3, 4]
>>> y = [4, 5, 1, 0]
>>> x.extend(y)
>>> print x
[1, 2, 3, 4, 4, 5, 1, 0]
Permutations⚓︎
La permutation d'un ensemble d'éléments est une liste de tous les cas possibles. Si on a besoin de cette fonctionnalité, inutile de réinventer la roue, itertools
s'en occupe :
>>> from itertools import permutations
>>> list(permutations(['a', 'b', 'c']))
[('a', 'b', 'c'), ('a', 'c', 'b'), ('b', 'a', 'c'), ('b', 'c', 'a'), ('c', 'a', 'b'), ('c', 'b', 'a')]
Permutation d'une liste de liste⚓︎
Comment afficher tous les cas possibles d'une liste elle-même composée de liste ? Avec l'outil product
de itertools
:
>>> from itertools import product
>>> list(product(['a', 'b'], ['c', 'd']))
[('a', 'c'), ('a', 'd'), ('b', 'c'), ('b', 'd')]
Astuces⚓︎
Afficher les 2 premiers éléments d'une liste :
Afficher le dernier item d'une liste :
Afficher le 3ème élément en partant de la fin :
Afficher les 3 derniers éléments d'une liste :
On peut additionner deux listes pour les combiner ensemble en utilisant l'opérateur +
:
On peut même mutiplier une liste :
Ce qui peut être utile pour initialiser une liste :