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>
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>
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]
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!