Dans Python, j'essaie de créer une instruction si elle procède si une variable d'un tableau existe quelque part dans une autre liste ou une autre matrice. Voici mon code de base, qui est censé vérifier si l'une des valeurs dans malgré mon meilleur Tentatives et de nombreuses versions de ce qui précède, je ne peux pas obtenir cela pour travailler. Quelqu'un pourrait-il s'il vous plaît élaborer où je vais mal ici? P> p> IDS code> existe dans
suivi_num code>:
3 Réponses :
Vous devez faire boucler chaque valeur dans sortie: p> EDIT: P> Si vous souhaitez imprimer des correspondances Notez que vous pouvez accélérer ces deux opérations en convertissant IDS code> et vérifier si
tout code> de ces valeurs existe dans
suivi_num code>. Utilisez
tout code> avec une compréhension génératrice:
tout () code> ne fonctionne pas, vous devez utiliser A pour la boucle depuis
tout () code> calcule pour la liste complète. Exemple: p>
suivi_num code> à l'avance sur un ensemble
() code> En effectuant
suivi_num = set (suivi_num) code>. Ceci est plus rapide car
Set code> a un
O (1) code> en fonctionnement, par rapport aux listes qui calculent
dans code> dans
o (n) < / code>. p> p>
Question rapide, existe-t-il un moyen évident de faire la déclaration IF dans la boucle une compréhension de la liste?
Vous pouvez faire quelque chose comme [impression (i) pour i in IDS si je en suivi_num] code>, mais qui défait le but de la compréhension de la liste - vous l'utilisez pour imprimer des valeurs de ne pas créer une liste .
Une bonne ressource pour les conditionnels dans les compréhensions de la liste serait ici: Stackoverflow.com/Questtions/4260280/...
Merci pour toute l'aide et la référence.
@ Coolio2654 heureux d'aider :)
Vous pouvez également comparer deux ensembles:
Je me demanderais quelle est la vitesse de cette méthode, hmm, mais cela semble intéressant.
@ Coolio2654 Il échoue beaucoup mieux que la réponse de Primusa sous sa forme actuelle. Toutefois, si IDS code> a été converti en un
défini code> d'abord dans la réponse par Primusa, il pourrait bien augmenter. Darius devrait garder à l'esprit la conversion de
correspondant code> à la liste
(...) code> est inutile
Aussi, tout (correspondances) code> est faux, car
tout ([0]) code> est
faux code> et
0 code> pourrait être un identifiant
valide code>. Vous devez simplement vérifier
si correspond à code> ou
imprimer bool (correspondances) code>
>>> ids = [123,321,111,333] >>> follow_num = [111, 222] >>> if set(ids).intersection(follow_num): ... print(ids) ... [123, 321, 111, 333]
Cela pourrait être utile pour l'OP si vous ajoutez une explication à ce que vous codez le code.