Maison  >  Article  >  développement back-end  >  Comment calculer efficacement les différences entre les éléments consécutifs dans une liste Python ?

Comment calculer efficacement les différences entre les éléments consécutifs dans une liste Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-28 06:15:30444parcourir

 How to Efficiently Calculate Differences Between Consecutive Elements in a Python List?

Calcul des différences entre les éléments d'une liste en Python

Souvent dans le traitement des données, nous rencontrons des situations où nous devons calculer les différences entre les éléments dans une liste. Ceci peut être réalisé en utilisant diverses techniques en Python.

Expressions lambda vs compréhensions de liste

Il existe deux approches courantes pour cette tâche : les expressions lambda et les compréhensions de liste. Les deux techniques ont leurs propres avantages. Explorons-les :

Expression Lambda :

<code class="python">result = [j - i for i, j in zip(t[:-1], t[1:])]</code>

Compréhension de liste :

<code class="python">result = [i - j for i, j in [(t[i], t[i+1]) for i in range(len(t)-1)]]</code>

Comparaison et Performance

Bien que les deux approches soient valides, les compréhensions de listes fonctionnent généralement mieux que les expressions lambda. En effet, les compréhensions de listes sont plus compactes et plus faciles à lire. De plus, ils sont optimisés pour la manipulation de listes et entraînent souvent une exécution de code plus rapide.

Exemple

Considérez la liste t = [1, 3, 6]. Nous voulons calculer les différences entre des éléments consécutifs, ce qui donne la liste v = [2, 3]. En utilisant l'approche de compréhension de liste, nous pouvons y parvenir comme suit :

<code class="python">t = [1, 3, 6]
v = [j - i for i, j in zip(t[:-1], t[1:])]
print(v)  # Output: [2, 3]</code>

Dans cet exemple, la fonction zip associe les éléments adjacents dans la liste et la compréhension de liste soustrait chaque paire pour produire les différences souhaitées.

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