🔡 Les listes
Une liste est une structure pouvant contenir plusieurs valeurs. Si une variable est une boîte, une liste peut être vue comme un conteneur pouvant contenir plusieurs boîtes. Python autorise les listes contenant plusieurs types de variables. Une liste se déclare avec les valeurs séparées par des virgules et encadrées par des crochets [ ].
nombres = [23, 5.5, 46]
chaines = ['Chien', 'Chat', 'Poule']
Les éléments d'une liste sont identifiés par leur indice (position). Il y a deux types de positionnement :
- Indice positif : commence à 0 pour le premier élément et augmente à mesure que l'on parcourt la liste.
- Indice négatif : commence à -1 pour le dernier élément et diminue à mesure que l'on remonte la liste.
liste = ['Chien', 'Chat', 'Rat', 'Coq']
indice positif = 0 1 2 3
indice négatif = -4 -3 -2 -1
Accès aux éléments :
liste = ['Chien', 'Chat', 'Rat', 'Coq']
liste[0]
# 'Chien'
liste[3]
# 'Coq'
liste[-1]
# 'Coq'
Si l'on tente d'accéder à un indice inexistant (ex: liste[4]), Python renverra une erreur IndexError.
Sous-listes (slicing) :
liste = ['Chien', 'Chat', 'Rat', 'Coq', 'Vache', 'Cochon']
liste[0:2]
# ['Chien', 'Chat']
liste[3:]
# ['Coq', 'Vache', 'Cochon']
liste[1:-1]
# ['Chat', 'Rat', 'Coq', 'Vache']
Remarque : dans liste[start:end], l'élément start est inclus mais end est exclu.
Créer rapidement des listes d'entiers avec range() :
list(range(10))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list(range(2, 6))
# [2, 3, 4, 5]
list(range(0, 500, 100))
# [0, 100, 200, 300, 400]
Syntaxe : range([début,] fin[, pas]), tous les arguments entre crochets sont optionnels.
Opérations sur les listes
Comme les chaînes de caractères, les listes supportent :
+: concaténation*: duplication
liste1 = ['Chien', 'Chat', 'Rat', 'Coq']
liste2 = ['Vache', 'Cochon']
liste1 + liste2
# ['Chien', 'Chat', 'Rat', 'Coq', 'Vache', 'Cochon']
liste2 * 3
# ['Vache', 'Cochon', 'Vache', 'Cochon', 'Vache', 'Cochon']
Pour connaître la taille d'une liste : len()
liste1 = ['Chien', 'Chat', 'Rat', 'Coq']
len(liste1)
# 4
len(range(10))
# 10
Listes de listes (tableaux)
enclos1 = ['Girafe', 4]
enclos2 = ['Singe', 10]
enclos3 = ['Lion', 6]
zoo = [enclos1, enclos2, enclos3]
zoo
# [['Girafe', 4], ['Singe', 10], ['Lion', 6]]
zoo[1]
# ['Singe', 10]
zoo[2][0]
# 'Lion'
zoo[0][1]
# 4
Chaînes de caractères → listes
On peut créer une liste à partir d'une chaîne de caractères :
split(sep): découpe la chaîne selonsep(séparateur)list(): transforme chaque caractère en élément de liste
a = "Bonjour, comment allez-vous?"
b = a.split(" ") # Création d'une liste où la séparation se fait à l'aide des espaces
b = ["Bonjour,", "comment", "allez-vous?"]