J'ai deux listes comme suit:
for i in range(len(a)):
for j in range(len(b)):
if a[i] == b[i]:
print (a[i])
Je voudrais avoir un print (une fonction ou une méthode plus en général) du a [i] éléments si a [i] == b [j] .
C'est le code que j'ai écrit, il ne fonctionne pas car il renvoie quatre fois la condition.
a = ["aaa", "bbb", "ccc"] b = ["aaa", "bbb", "ddd", "eee"]
3 Réponses :
essayez l'extrait de code suivant:
a = ["aaa", "bbb", "ccc"] b = ["aaa", "bbb", "ddd", "eee"] output = [e for e in a if e in b]
Il semble que ce que vous recherchez est une intersection définie.
{'aaa', 'bbb'}
Le résultat est:
a = ["aaa", "bbb", "ccc"] b = ["aaa", "bbb", "ddd", "eee"] set(a).intersection(set(b))
Merci Roy, je n'étais pas au courant de la méthode d'intersection.
Acceptez-vous cela comme une réponse pour les générations futures?
Votre problème principal est que vous avez la condition a [i] == b [i] qui devrait être a [i] == b [j] this devrait résoudre le problème
fournir une solution pour les doublons cependant, comme si seulement cela était corrigé, il y aurait toujours des doublons
voulez-vous comparer des éléments au même index ou à toutes les combinaisons et voir quelle correspondance. Si ce dernier, qu'en est-il des doublons?
Je ne veux prendre qu'une seule fois