"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 ?

Publié le 2024-11-08
Parcourir:278

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

Créer une liste avec un élément sur n à partir d'une liste d'origine

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 compris entre 0 et 1 000, comment pouvons-nous obtenir une liste qui inclut uniquement le premier élément et tous les 10 éléments suivants ?

En utilisant une boucle for traditionnelle, nous pouvons accomplir cette tâche comme suit :

xs = list(range(1001))
new_list = []
for i, x in enumerate(xs):
    if i % 10 == 0:
        new_list.append(x)

Cependant, une approche plus concise et efficace est disponible en utilisant le découpage de Python :

>>> xs = list(range(1001))
>>> new_list = xs[0::10]

Dans cette solution, l'expression xs[0::10] crée une nouvelle liste qui inclut un élément sur 10 à 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 :

$ 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

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.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729392499. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3