So wie ich weiß, die Kreuzung von zwei Listen zu finden, indem Sie:im Kreuzungselemente nicht finden, von zwei Listen
>>> a = [1,2,3,4,5]
>>> b = [1,3,5,6]
>>> list(set(a) & set(b))
[1, 3, 5]
Aber was ist der beste Weg, um alle Elemente zu finden, die nicht in die enthalten sind Überschneidung. Meine Idee ist es, eine Vereinigung der beiden Listen zu erstellen und dann entfernen Sie alle Elemente aus der Kreuzung von der Vereinigung als solche:
>>> a = [1,2,3,4,5]
>>> b = [1,3,5,6]
>>> intersection = list(set(a) & set(b))
>>> union = list(set(a) | set(b))
>>> non_intersection = intersection - union
[2, 4, 6]
Ist dies der beste Weg, dies zu tun, oder gibt es einen anderen Weg?
Was Sie suchen die symmetrische Differenz bezeichnet wird. Sets haben eine Methode dafür. Versuchen Sie zu googeln. – BrenBarn
Um hinzuzufügen, was BrenBarn gesagt hat, verwenden Sie '^' anstelle von '&'. – MooingRawr
Dies ist in der Dokumentation abgedeckt. Es ist der [erste Treffer] (https://docs.python.org/2/library/stdtypes.html#set) unter "python set methods". Wie hast du das bei deiner Suche nicht gefunden? – Prune