Les listes Python natives
Ce sont des listes créées sans recours à une bibliothèque particulière.
Création
Définition : Définir une liste Python
Les éléments d'une liste Python sont placés entre [ ], séparés par des virgules.
x = [] # Création d'une liste vide
temperatures = [20.2, 15.6, 10.3, 8.4, 17.9, 6.6] # Liste de 6 valeurs numérotées de 0 à 5
Attention : les indices d'une liste commencent à 0.
Méthode : Longueur d'une liste
Pour connaître le nombre de termes d'une liste, on utilise la commande ci-dessous :
l = len(temperatures)
Avec la liste définie précédemment, l vaut 6.
Manipulation des listes Python
Méthode : Afficher les termes d'une liste
Pour afficher tous les les termes d'une liste :
print(temperatures)
Pour afficher le dernier terme d'une liste :
print(temperatures[-1]) # On affiche le dernier terme de la liste.
Pour extraire certains termes d'une liste :
print(temperatures[0:4:2])
On affiche les termes d'indices 0 à 4, de deux en deux.
Les termes d'indices supérieur ou égal à 4 ne sont pas affichés.
Méthode : Ajouter ou supprimer des termes à une liste
Pour ajouter un terme à la fin d'une liste, exemple avec la liste temperatures :
temperatures.append(30.3) # Ajoute la valeur 30.3 à la fin de la liste temperatures
Pour supprimer un terme d'indice particulier d'une liste :
temperatures.pop(4) # Supprime le terme d'indice 4 de la liste temperatures
Pour supprimer une valeur d'une liste, sans en connaître l'indice :
temperatures.remove(15.6) # Supprime la valeur 15.6 de la liste temperatures
Cette opération efface la première occurrence trouvée et s'arrête ensuite : elle ne supprime pas toutes les valeurs 15.6 si elles apparaissent plusieurs fois dans la liste.
Calculer avec les listes Python natives
Calculer à partir des listes est indispensable pour traiter des données expérimentales :
calcul des coordonnées de la vitesse à partir des positions ;
calcul des coordonnées de l'accélération à partir des vitesses ;
calcul des énergies cinétique, potentielle ou mécanique ;
etc...
Attention : Pas de calcul direct avec des listes Python
Avec des listes Python, il n'est pas possible de traduire directement une relation mathématique en ligne de commande.
Par exemple, si on dispose d'une liste Python contenant des valeurs de la vitesse v = [2, 3, 4, 6, 7, 8], le calcul des énergies cinétiques correspondantes par la relation \(E_C = \dfrac{1}{2} \cdot m \cdot v^2\) ne peut pas se traduire en Python par EC = 0.5*m*v**2.
Avec une boucle
Méthode : Syntaxe
C'est la méthode la plus simple à comprendre pour les élèves.
On reprend l'exemple avec une liste contenant des valeurs de la vitesse. On souhaite obtenir la liste contenant les valeurs de l'énergie cinétique.
v = [2, 4, 6, 7, 8, 9] # liste contenant les vitesses
m = 2.5 # On stocke la masse dans la variable m
Ec = [] # Liste vide pour les énergies cinétiques
for i in range(len(v)): # Pour tous les indices de la liste v
Ec.append(0.5 * m * v[i]**2)
print(Ec) # Pour vérification
Création d'une liste en compréhension
Méthode : Syntaxe
Cette méthode produit des instructions plus concises, mais qui peuvent être moins simples à interpréter pour les élèves.
On reprend l'exemple précédent.
v = [2, 4, 6, 7, 8, 9] # liste contenant les vitesses
m = 2.5 # On stocke la masse dans la variable m
Ec = [0.5 * m * v[i]**2 for i in range(len(v))] # Calcul des énergies cinétiques
print(Ec) # Pour vérification
Variante dans la syntaxe : il est même possible de se passer des indices i pour effectuer les mêmes opérations :
v = [2, 4, 6, 7, 8, 9] # liste contenant les vitesses
m = 2.5 # On stocke la masse dans la variable m
Ec = [0.5 * m * val**2 for val in v] # Calcul des énergies cinétiques
print(Ec) # Pour vérification
Exemple : Création d'une liste de dates entre 0 et 1,5 s, par pas de 0,01 s
La liste en compréhension est particulièrement adaptée pour ce genre d'opération.
t = [i * 0.01 for i in range(151)]
print(t) # pour vérification