La solution la plus simple pour répéter une liste est d'utiliser l'opérateur *
:
ma_liste = [1, 2, 3]
liste_repetee = ma_liste * 3 # Répète la liste 3 fois
print(liste_repetee)
On peut créer une liste de longueur n
qui alterne les nombres 1, 2, 3
en utilisant plusieurs approches :
*
C'est la méthode la plus simple et efficace.
ma_liste = [1, 2, 3]
liste_repetee = ma_liste * 3 # Répète la liste 3 fois
print(liste_repetee)
Sortie :
[1, 2, 3, 1, 2, 3, 1, 2, 3]
Exemple en ligne :
for
Si vous voulez une répétition dynamique :
ma_liste = [1, 2, 3]
n = 3 # Nombre de répétitions
liste_repetee = []
for _ in range(n):
liste_repetee.extend(ma_liste)
print(liste_repetee)
Sortie :
[1, 2, 3, 1, 2, 3, 1, 2, 3]
Voici l'exemple en ligne :
Une méthode concise pour les adeptes des compréhensions de liste :
ma_liste = [1, 2, 3]
n = 3
liste_repetee = [elem for _ in range(n) for elem in ma_liste]
print(liste_repetee)
Sortie :
[1, 2, 3, 1, 2, 3, 1, 2, 3]
Cela fonctionne de manière similaire à la boucle for
.
Voici l'exemple en ligne :
itertools.cycle
(solution élégante) :from itertools import cycle, islice
n = 10
liste = list(islice(cycle([1, 2, 3]), n))
print(liste)
Sortie :
[1, 2, 3, 1, 2, 3, 1, 2, 3]
Cette méthode est efficace et bien adaptée pour une séquence répétitive.
itertools.cycle()
pour une répétition infinieSi vous voulez un générateur qui boucle à l'infini :
import itertools
ma_liste = [1, 2, 3]
repetiteur = itertools.cycle(ma_liste)
# Afficher les 10 premières valeurs répétées
for _ in range(10):
print(next(repetiteur), end=" ")
Sortie :
1 2 3 1 2 3 1 2 3 1
Ici, cycle()
génère une liste répétée à l'infini, donc il faut arrêter l'itération manuellement.
Voici l'exemple en ligne :
💡 Quelle méthode choisir ?
*
si vous avez une répétition fixe.for
ou une compréhension de liste pour plus de contrôle.itertools.cycle()
pour une solution élégante ou une répétition infinie.