-1
votes

Comment vérifier Python pour chaque élément d'une liste, qu'il soit contenu dans une autre liste?

Comment fonctionne-t-il en Python pour vérifier chaque élément d'une liste (dire l1 code>), qu'il soit contenu dans une autre liste (dire l2 code>).

l1 = ['a', 'b', 'c']
l2 = ['b', 'c']


2 commentaires

Connexe: Comment vérifier si une valeur dans une liste est dans une autre liste avec une doublure pour une instruction IF dans Python si je suis Ne pas utiliser des ensembles?


@Sayez la question derrière votre lien, vise à trouver n'importe quel match , ce dont je n'ai pas besoin.


6 Réponses :


2
votes

Utilisez un compréhension de la liste :

[x in l2 for x in l1]
  • Je trouve que cela doit être compris mieux, lorsque vous commencez avec le pour x dans l1 code> partie: une variable temporaire x code> est créée et bouclé tous les éléments dans l1 code> similaire à un pour la boucle . Li>
  • pour chacun de ces x code> Il est maintenant vérifié, que ce soit dans l2 code> (donc le dans code> dans x in l2 code> a une signification différente de celle du dans code> dans x dans l1 code>). li> ul> p>


0 commentaires

0
votes

Cela fonctionne trop xxx

mais il est long


0 commentaires

1
votes

Vous pouvez utiliser numpy gray code> et la fonction numpy.in1d ​​ code> :

import numpy

l1 = ['a', 'b', 'c']
l2 = ['b', 'c']
results = numpy.in1d(l1, l2)


0 commentaires

0
votes

Vérification si un élément est dans une liste prend des opérations O (n), si vous le répétez plusieurs fois, cela vaut la peine d'utiliser un Set qui comporte des tests d'adhésion de (amortizé) O (1) , vous donnant xxx

(convention de dénomination empruntante de numpy )

qui sera beaucoup plus rapide lorsque les listes sont grandes (plus de quelques centaines d'éléments chacun) < / p>


0 commentaires

1
votes

S'il y a deux listes, l1 et l2 , et nous devons vérifier si chaque élément de l1 est présent dans L2 , il est préférable de convertir l2 à un définir et vérifiez l'appartenance à chaque élément de l1 dans défini ( L2) .

Les tests d'adhésion prennent O (n) heure pour listes et O (1) heure pour Définit . L'utilisation d'un définir réduirait la complexité de l'heure du code requis sur O (n) , qui aurait été autrement été O (n 2 ) . xxx

sortie: xxx


0 commentaires

0
votes

Utilisation lambda xxx

sortie xxx


0 commentaires