Maison >développement back-end >Tutoriel Python >Comment générer une nouvelle liste avec chaque nième élément d'une liste originale ?
Créer une liste avec chaque nième élément d'une liste originale
Dans l'analyse de données ou la programmation, il est souvent nécessaire de travailler avec un sous-ensemble de une liste. Une tâche courante consiste à créer une nouvelle liste contenant uniquement le nième élément de la liste d'origine. Par exemple, étant donné une liste d'entiers de 0 à 1000, comment pouvons-nous obtenir une liste qui inclut uniquement le premier et chaque dixième élément suivant ?
En utilisant une boucle for traditionnelle, nous pouvons accomplir cette tâche comme suit :
<code class="python">xs = list(range(1001)) new_list = [] for i, x in enumerate(xs): if i % 10 == 0: new_list.append(x)</code>
Cependant, une approche plus concise et efficace est disponible en utilisant le découpage de Python :
<code class="python">>>> xs = list(range(1001)) >>> new_list = xs[0::10]</code>
Dans cette solution, l'expression xs[0::10] crée une nouvelle liste qui inclut chaque dixième élément à partir de l'index 0. Le résultat est une liste contenant [0, 10, 20, 30, ..., 1000] sans avoir besoin de boucles ou de vérifications conditionnelles.
Cette méthode est nettement plus rapide que l'approche de la boucle for, s'avérant avantageuse lorsqu'il s'agit de grandes listes. Comme le démontre la comparaison temporelle suivante :
<code class="python">$ python -m timeit -s "xs = list(range(1000))" "[x for i, x in enumerate(xs) if i % 10 == 0]" 500 loops, best of 5: 476 usec per loop $ python -m timeit -s "xs = list(range(1000))" "xs[0::10]" 100000 loops, best of 5: 3.32 usec per loop</code>
Cette approche optimisée utilisant le découpage offre à la fois des avantages en termes de simplicité et de performances pour créer de nouvelles listes avec chaque Nième élément d'une liste originale.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!