a = [1, 2, 9, 5, 1]
b = [9, 8, 7, 6, 5]
Ich möchte die Anzahl der Duplikate zwischen den beiden Listen zählen. Mit der obigen Formel möchte ich also den Wert 2 zurückgeben, da 9 und 5 in beiden Listen vorkommen.
Ich habe etwas Ähnliches versucht, aber es hat nicht ganz funktioniert.
def filter_(x, y):
count = 0
for num in y:
if num in x:
count += 1
return count
0 Stimmen
Beachten Sie, dass, sobald es funktioniert (Entnahme der
return
zweimal), hat esO(n * m)
komplex, d.h. skaliert ziemlich furchtbar.0 Stimmen
@delnan danke für den Tipp. so mit Schnittpunkt Skalen besser.
0 Stimmen
Ja. Sie können sogar noch besser, aber das erfordert mehr als eine Zeile Code (die Idee ist, dass Sie nur eine Menge der ersten Liste benötigen, dann iterieren über die zweite und behalten die Elemente, die in der Menge sind - spart die Erstellung einer zweiten Menge).
1 Stimmen
a
enthält1
zweimal, wennb
enthalten1
auch, wenn der Zählerstand um1
o2
?