in einer einfachen Liste nach der Überprüfung ist trivial:
%Vor%aber wenn es eine Liste von Listen ist, wie zum Beispiel:
%Vor% Wie kann dies behoben werden, um True
?
Versuchen Sie es mit der integrierten Funktion any
. Es ist die idiomatische Lösung, und es ist auch effizient, weil any
kurzschließt und stoppt, sobald es die erste Übereinstimmung findet:
TL; DR
%Vor%Beachte das etwas interessant:
%Vor%Ist über 50% langsamer auszuführen.
Ursprüngliche Antwort (en)
Was ist, wenn Sie eine Tiefe von mehr als 2 haben? Hier ist ein Ansatz für den generischen Fall:
%Vor%Ich bin mir nicht sicher über die Geschwindigkeit, aber wie gesagt, es ist ein Ansatz, der für jemanden nützlich sein kann!
BEARBEITEN - BESSERE (SCHNELLER) ANTWORT:
Dies reduziert die benötigte Zeit (wenn n
gefunden wird, sogar wenn es nicht gefunden wird, ungefähr die Hälfte der Zeit tatsächlich ...), indem es früh zurückkehrt. Dies ist etwas schneller als die Antwort von @Curt F. und langsamer als das Erstellen einer Funktion, die eine maximale Tiefe von 2 annimmt (die akzeptierte Antwort).
Schnelles Timing (sehr hacky, sorry, beschäftigt heute!):
%Vor%Mein Code basiert auf Óscar López 'Lösung. Seine Lösung war nicht genau das, was ich für mein Problem brauchte, aber es gab genug Informationen für mich, um mein Problem herauszufinden. Wenn Sie Elemente in einer Liste verschachtelt haben und sehen müssen, ob sie sich in einer anderen verschachtelten Liste befinden, funktioniert das.
%Vor%