HOWTO · Python
Créer une liste de zéros en Python
Ce tutoriel montre comment générer une liste contenant des zéros en Python. Découvrez plusieurs méthodes, comme la compréhension de liste, l'opérateur de multiplication et l'utilisation de la bibliothèque numpy. Que vous soyez débutant ou programmeur expérimenté, ce guide fournit des exemples de code clairs et des explications pour vous aider à créer efficacement des listes de zéros pour vos projets.
Sur cette page
Pour créer une liste Python contenant n zéros, utilisez [0] * n. Par exemple, [0] * 5 crée une liste de cinq zéros entiers. C’est le choix le plus simple lorsque la longueur voulue est connue et que chaque élément a la même valeur. Les exemples ci-dessous utilisent n = 5 afin de comparer directement les différentes approches.
Créer une liste de zéros de longueur fixe par multiplication de listes
La multiplication d’une liste répète les éléments de la liste située à gauche de l’opérateur. Comme [0] contient un seul entier, le multiplier par n produit n zéros entiers :
n = 5
zeros = [0] * n
Le résultat est une nouvelle liste. Avec un compte égal à zéro, le résultat est [] ; un compte négatif produit également [], car Python répète une séquence zéro fois lorsque le nombre de répétitions n’est pas positif. Ici, la valeur répétée est un entier : chaque position de la liste peut donc être réaffectée indépendamment. Si vous répétez un objet mutable, comme une liste imbriquée, chaque position désigne le même objet ; utilisez plutôt une compréhension pour créer des objets distincts.
Créer une liste de zéros avec une compréhension de liste
Une compréhension de liste évalue son expression une fois pour chaque élément d’un itérable. Ici, range(n) fournit cinq itérations, et _ désigne une variable de boucle dont l’expression n’a pas besoin. L’expression entre crochets ci-dessous est une compréhension de liste :
n = 5
zeros = [0 for _ in range(n)]
Utilisez cette forme lorsque la valeur est calculée à chaque itération ou lorsque vous souhaitez rendre visible la règle de génération. Comme la variable de boucle n’est pas utilisée ici, _ est un nom conventionnel ; il n’a aucun comportement particulier en Python. Vous pouvez remplacer 0 par une expression qui dépend de la valeur d’itération si chaque élément doit être calculé différemment.
Utiliser une boucle lorsque chaque valeur nécessite une logique particulière
Une boucle explicite est utile lorsque la création de chaque élément nécessite plusieurs instructions, une condition ou une autre opération. Ajoutez une valeur à chaque itération :
n = 5
zeros = []
for _ in range(n):
zeros.append(0)
Cette méthode produit le même type de liste intégrée que les exemples avec la multiplication et la compréhension de liste. Pour simplement répéter un entier, les deux autres formes expriment le résultat plus succinctement ; utilisez la boucle lorsque son corps rend le traitement de chaque élément plus facile à comprendre. Dans un programme réel, remplacez l’instruction append(0) par le travail nécessaire pour calculer ou préparer chaque valeur.
Répéter zéro avec itertools.repeat()
itertools.repeat() fournit plusieurs fois le même objet. Indiquez-lui la valeur et le nombre de répétitions, puis passez son itérateur à list() si le code appelant a besoin d’une liste :
from itertools import repeat
n = 5
zeros = list(repeat(0, n))
Cette approche est utile lorsqu’un itérateur peut être utilisé directement ou lorsqu’un itérateur de valeurs répétées s’intègre à une opération plus vaste. L’appel list(...) parcourt l’itérateur et stocke les cinq valeurs en mémoire ; [0] * n est donc généralement plus simple lorsque le résultat souhaité est déjà une liste.
Utiliser NumPy lorsque vous avez besoin d’un tableau numérique
Pour des calculs numériques faisant appel aux opérations NumPy, numpy.zeros(n) crée un tableau NumPy contenant n éléments de valeur zéro. Par exemple, si NumPy est installé, import numpy as np suivi de zeros = np.zeros(5) crée un tableau. Le résultat est un ndarray, et non une liste Python intégrée ; convertissez-le avec zeros.tolist() uniquement si une autre partie de votre code exige spécifiquement une liste. NumPy est une dépendance supplémentaire, utile lorsque vous avez besoin de ses opérations sur les tableaux, de leurs formes ou de leurs types de données. Pour une liste ordinaire, utilisez [0] * n sans ajouter de dépendance.
Choisissez la multiplication pour une liste simple de longueur fixe, une compréhension pour une expression évaluée à chaque élément, une boucle pour des étapes personnalisées, itertools.repeat() lorsque son itérateur est utile, ou NumPy lorsque la structure de données voulue est un tableau.