Maison  >  Article  >  développement back-end  >  Comment générer une nouvelle liste avec chaque nième élément d'une liste originale ?

Comment générer une nouvelle liste avec chaque nième élément d'une liste originale ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-20 10:56:02659parcourir

How to Generate a New List with Every Nth Item from an Original List?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn