logo

Soustraire des listes de chaînes en Python

En Python, une chaîne est une séquence de caractères et une liste est une collection d'éléments pouvant être de n'importe quel type de données, y compris des chaînes. Soustraction d'une liste de chaînes implique de supprimer les éléments communs entre deux listes ou cordes .

Pour soustraire une liste de chaînes d'une autre, vous pouvez utiliser la commande 'ensemble' type de données en Python. Le type de données set est une collection non ordonnée d’éléments uniques. L'opérateur de soustraction '-' peut être utilisé entre deux ensembles pour rechercher les éléments du premier ensemble qui ne sont pas présents dans le deuxième ensemble.

gimp remplacer la couleur

Exemple:

Voici un exemple de soustraction d'une liste de chaînes d'une autre à l'aide du type de données défini :

 list1 = ['apple', 'banana', 'cherry', 'orange'] list2 = ['banana', 'orange', 'kiwi'] result = list(set(list1) - set(list2)) print(result) 

Sortir:

 ['apple', 'cherry'] 

Dans l'exemple ci-dessus, nous définissons deux listes, 'feuille1' et 'liste2' . Après cela, nous convertissons chaque liste en un ensemble en utilisant le 'ensemble' fonction en Python. Après cela, nous utilisons le '-' opérateur pour soustraire les éléments de 'liste2' depuis 'feuille1' . Enfin, nous reconvertissons l'ensemble résultant en une liste en utilisant le 'liste' fonction en Python.

Cela donne lieu à une nouvelle liste 'résultat' qui contient les éléments de 'feuille1' qui ne sont pas présents dans 'liste2' , qui dans ce cas sont 'pomme' et 'cerise' .

Exemple:

Voici un autre exemple qui montre comment soustraire une liste de chaînes d'une seule chaîne :

 string1 = 'Hello world!' list1 = ['o', 'l', 'd'] result = ''.join([char for char in string1 if char not in list1]) print(result) 

Sortir:

 'He wr!' 

Dans l'exemple ci-dessus, nous définissons une chaîne 'chaîne1' et une liste de chaînes 'feuille1' . Après cela, nous utilisons une compréhension de liste pour parcourir chaque caractère dans 'chaîne1' et vérifiez s'il est présent dans 'feuille1' . Si le personnage n'est pas dans 'feuille1' , nous l'ajoutons à une nouvelle liste en utilisant le 'rejoindre' méthode. Enfin, nous reconvertissons la liste résultante en chaîne.

Cela se traduit par une nouvelle chaîne 'résultat' qui contient uniquement les caractères de 'chaîne1' qui ne sont pas présents dans 'feuille1' , qui dans ce cas sont 'H', 'e', ​​​​​​', 'w' , et 'r' .

Il convient de noter que l'ordre des éléments dans la liste ou la chaîne résultante peut ne pas être conservé. Si vous devez conserver l'ordre, vous pouvez utiliser une compréhension de liste avec un 'si' instruction pour filtrer les éléments présents dans la deuxième liste.

Exemple:

 list1 = ['apple', 'banana', 'cherry', 'orange'] list2 = ['banana', 'orange', 'kiwi'] result = [item for item in list1 if item not in list2] print(result) 

Sortir:

 ['apple', 'cherry'] 

Dans l'exemple ci-dessus, nous définissons deux listes, 'feuille1' et 'liste2' . Après cela, nous utilisons une compréhension de liste pour parcourir chaque élément de 'feuille1' et vérifiez s'il est présent dans 'liste2' . Si l'élément n'est pas dans 'liste2' , nous l'ajoutons à une nouvelle liste. Enfin, nous imprimons la liste résultante, qui contient les éléments de 'feuille1' qui ne sont pas présents dans 'liste2' .

qu'est-ce que la mise en veille prolongée en Java

Quelques autres informations :

Types de données Ensemble ou Liste :

Comme mentionné précédemment, lors de la soustraction de listes de chaînes, il est recommandé de convertir les listes en ensembles. En effet, les ensembles sont optimisés pour vérifier l'existence d'éléments et supprimer les doublons. Cependant, s’il est important de préserver l’ordre des éléments, il peut être préférable d’utiliser plutôt une compréhension de liste.

Considérations relatives aux performances :

La conversion de listes en ensembles peut être une opération coûteuse en termes de calcul, en particulier pour les grandes listes. Si les performances sont un problème, vous pouvez envisager d'utiliser des approches alternatives telles que la compréhension de liste ou une expression génératrice.

Mutabilité:

Il est important de noter que les ensembles sont mutable , tandis que les chaînes et tuples (qui peuvent également être utilisés comme types de données itérables) ne le sont pas. Cela signifie que lorsque vous soustrayez un ensemble d’un autre ensemble, l’ensemble résultant est mutable , et vous pouvez modifier son contenu. D'un autre côté, lors de la soustraction d'une liste ou d'un tuple d'une autre liste ou tuple, la liste ou le tuple résultant n'est pas mutable et vous ne pouvez pas modifier son contenu.

Listes imbriquées :

Si vous travaillez avec des listes imbriquées, vous devrez peut-être utiliser une boucle imbriquée ou une récursion pour soustraire une liste d'une autre. Voici un exemple :

 list1 = [['apple', 'banana'], ['cherry', 'orange']] list2 = [['banana', 'kiwi'], ['cherry', 'pear']] result = [] for sublist1, sublist2 in zip(list1, list2): subresult = [item for item in sublist1 if item not in sublist2] result.append(subresult) print(result) 

Sortir:

 [['apple'], ['orange']] 

Dans l'exemple ci-dessus, nous définissons deux listes imbriquées, 'feuille1' et 'liste2' . Après cela, nous utilisons une boucle for pour parcourir chaque paire de sous-listes dans 'feuille1' et 'liste2' . Nous utilisons une compréhension de liste pour soustraire les éléments de chaque sous-liste dans 'liste2' de la sous-liste correspondante dans ' feuille1' . Enfin, nous ajoutons les sous-listes résultantes à une nouvelle liste 'résultat' .