Python: wie finden gemeinsamer Werte in drei Listen
Ich versuche, um eine gemeinsame Liste von Werten für drei verschiedene Listen:
a = [1,2,3,4]
b = [2,3,4,5]
c = [3,4,5,6]
natürlich ich natürlich versuchen, die and
Betreiber aber so bekomme ich nur den Wert des letzten list
im Ausdruck:
>> a and b and c
out: [3,4,5,6]
Ist ein kurzer Weg, um die gemeinsamen Werte-Liste:
[3,4]
Br
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sets verwenden:
Oder wie Jon vorgeschlagen:
Verwendung von sets hat den Vorteil, dass Sie nicht brauchen, um immer wieder die Iteration der ursprünglichen Listen. Jede Liste wird iteriert einmal zum erstellen des sets, und dann die sets sind durchzogen.
Die naive Art und Weise, dies zu lösen, mit einer gefilterten Liste Auffassungsgabe Geotob hast, wird die Iteration Listen
b
undc
für jedes elementa
, also für längere Liste, wird dies sehr viel weniger effizient.ist eine schnelle und einfache Lösung. Dieser erstellt eine Liste
out
mit Einträgen ausa
, wenn diese Einträge inb
undc
.Für größere Listen, den Sie betrachten möchten, die Antwort von @poke
Für diejenigen, die noch stolpern auf diese Frage, mit numpy kann man verwenden:
Dieser arbeitet mit Listen als auch numpy-arrays.
Es könnte erweitert werden, um weitere arrays mit Hilfe von
functools.reduce
oder es kann einfach wiederholt werden, für mehrere arrays.oder