Suche-Funktion in python
Hallo ich bin versucht, zu erstellen, eine Suche-Funktion in python, das geht durch die Liste und sucht nach einem element in Ihr.
so weit ive got
def search_func(list, x)
if list < 0:
return("failure")
else:
x = list[0]
while x > list:
x = list [0] + 1 <---- how would you tell python to go to the next element in the list ?
if (x = TargetValue):
return "success"
else
return "failure"
- Wenn Sie möchten, um Ihre eigene zu suchen, versuchen die Implementierung der binären Suche algo...
- Es gibt einige Verwirrung in der Logik... versuchen, Kommentare zu schreiben Zeile für Zeile und machen Sie ein Beispiel mit tatsächlichen Werten (d.h. Sie geben Werte auf 'Liste' und 'x' und versuchen Sie herauszufinden, wie ändern Sie sich durch den code)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, Sie aktuellen code ist nicht sehr Pythonic. Und es sind mehrere Fehler! müssen Sie Indizes verwenden, um Zugang Sie ein element in einer Liste, die Korrektur der Ihren code sieht es wie folgt aus:
... Aber beachten Sie, dass in Python geben, die Sie selten verwenden
while
zu durchqueren, eine Liste, eine viel natürlichere und einfachere Weg ist die Verwendungfor
, die automatisch und bindet eine variable an jedes element, ohne dass Indizes verwendet werden:Aber wir können noch mehr Pythonic! die Funktionalität, die Sie implementieren möchten, ist so verbreitet, dass die bereits in Listen. Verwenden Sie einfach
in
um zu testen, ob ein element in einer Liste:Sagen Sie, Sie wollen, um zu sehen, ob ein element in einer Liste? Wenn dem so ist, gibt es keine Notwendigkeit für eine Funktion wie das. Verwenden Sie einfach
in
:Diese Methode ist viel effizienter.
Wenn Sie haben, es zu tun, ohne
in
ich nehme an, dies funktioniert:brauchen Sie nicht, um eine Funktion schreiben, die für die Suche, benutzen Sie einfach
Update:
while
undif
nicht ein built-in, aberin
ist?in
ist nicht eingebaut. Es ist ein Teil der Python-syntax.Sind Sie, dass Ihr problem komplexer ist, während die Lösung eines Problems nur denken, vor dem starten von code. Sie sind mit while-Schleifen und so weiter, die kann manchmal zu einer Endlosschleife. Sollten Sie eine for-Schleife verwenden, um es zu lösen. Das ist besser als while-Schleife. Also einfach prüfen, welche Bedingung hilft Ihnen. Das ist es du bist fast fertig.