Maison  >  Article  >  développement back-end  >  Comment soustraire des listes en Python ?

Comment soustraire des listes en Python ?

DDD
DDDoriginal
2024-10-23 12:19:30196parcourir

How Can You Subtract Lists in Python?

Comment soustraire des listes en Python

Lorsque vous travaillez avec des listes, il existe des scénarios dans lesquels vous devrez peut-être soustraire une liste d'une autre. La soustraction de listes en Python implique d'identifier les éléments qui sont présents dans une liste mais pas dans l'autre.

Utiliser la compréhension de liste

Une approche simple consiste à utiliser la compréhension de liste. En parcourant la première liste (x), vous pouvez créer une nouvelle liste qui inclut uniquement les éléments non présents dans la deuxième liste (y) :

<code class="python">[item for item in x if item not in y]</code>

Cette méthode conserve l'ordre d'origine de x tout en excluant les éléments trouvé dans y.

Utilisation de Définir la différence

Si vous ne souhaitez pas préserver les propriétés de la liste (telles que la commande), vous pouvez tirer parti de l'opération de différence définie. Les ensembles sont des collections non ordonnées, ils éliminent donc les doublons. Pour effectuer une différence définie :

<code class="python">list(set(x) - set(y))</code>

Cette méthode renvoie une liste avec des éléments uniques à la première liste.

Remplacement de la méthode sub

Pour des raisons de commodité syntaxique, vous pouvez définir une classe personnalisée qui hérite de la liste et remplace la méthode sub :

<code class="python">class MyList(list):
    def __sub__(self, other):
        return self.__class__(*[item for item in self if item not in other])</code>

Avec cette classe, vous pouvez utiliser la soustraction infixe :

<code class="python">x = MyList(1, 2, 3, 4)
y = MyList(2, 5, 2)
z = x - y  # Subtracts y from x and assigns to z</code>

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