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']
6 Réponses :
Utilisez un compréhension de la liste :
[x in l2 for x in l1]
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>
Cela fonctionne trop mais il est long p> p>
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)
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 (convention de dénomination empruntante de qui sera beaucoup plus rapide lorsque les listes sont grandes (plus de quelques centaines d'éléments chacun) P> < / p> Set code> qui comporte des tests d'adhésion de (amortizé) O (1) , vous donnant
numpy code>
) p>
S'il y a deux listes, Les tests d'adhésion prennent sortie: p> l1 code> et
l2 code>, et nous devons vérifier si chaque élément de
l1 code> est présent dans
L2 code>, il est préférable de convertir
l2 code> à un
définir code> et vérifiez l'appartenance à chaque élément de
l1 code> dans
défini ( L2) code>.
O (n) code> heure pour
listes code> et
O (1) code> heure pour
Définit code>. L'utilisation d'un
définir code> réduirait la complexité de l'heure du code requis sur
O (n) code>, qui aurait été autrement été
O (n 2 sup >) code>. p>
Utilisation sortie p> lambda code>
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 i>, ce dont je n'ai pas besoin.