Lambda ou compréhension de liste : quelle est la meilleure solution pour les différences entre éléments dans les listes Python ?

Susan Sarandon
Libérer: 2024-11-05 05:58:02
original
631 Les gens l'ont consulté

 Lambda vs. List Comprehension: Which is Best for Element-wise Differences in Python Lists?

Effectuer une différence par élément dans les listes : Lambda et compréhension de liste

Trouver des différences entre des éléments adjacents dans une liste est une opération courante dans programmation. En Python, il existe plusieurs façons d'y parvenir, notamment en utilisant des expressions lambda ou des compréhensions de liste.

Expression lambda :

Une expression lambda peut être utilisée pour créer une fonction à la volée, qui peut ensuite être utilisé pour opérer sur chaque élément de la liste. Par exemple :

<code class="python">t = [1, 3, 6]
differences = list(map(lambda i, j: j - i, t[:-1], t[1:]))</code>
Copier après la connexion

Dans ce cas, la fonction lambda lambda i, j: j - i soustrait le (i)-ème élément de son (i 1)-ème élément. La fonction map applique ensuite cette fonction à chaque paire d'éléments adjacents dans la liste.

Compréhension de liste :

Les compréhensions de liste fournissent un moyen concis de créer une nouvelle liste basée sur sur une liste existante. La compréhension de liste suivante effectue la même opération que l'expression lambda ci-dessus :

<code class="python">differences = [j - i for i, j in zip(t[:-1], t[1:])]</code>
Copier après la connexion

La fonction zip associe les éléments adjacents dans la liste et la compréhension de liste parcourt ces paires. Pour chaque paire (i, j), il calcule la différence j - i.

Comparaison :

Les deux approches ont leurs avantages et leurs inconvénients. Les expressions lambda sont plus polyvalentes et peuvent être utilisées dans un plus large éventail de situations. Cependant, les compréhensions de listes sont souvent plus concises et plus faciles à lire.

Exemple :

Étant donné la liste t = [1, 3, 6], à la fois l'expression lambda et la compréhension de la liste produira le résultat suivant :

[2, 3]
Copier après la connexion

C'est parce que la première différence (3 - 1) est 2 et la deuxième différence (6 - 3) est 3.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!