"Mehrdimensionale Liste in Python nach String durchsuchen?
Hi,
ich fange gerade an, mit Python zu arbeiten. Derzeit bin ich dabei eine Datenbank zu schreiben. Entschuldigt bitte die Frage, aber wie nach langem Suchen bin ich immer noch nicht fündig geworden. Ich möchte eine mehrdimensionale Liste nach Strings, also nach Namen, durchsuchen. Irgendwie kriege ich es gerade nicht hin. Wie gesagt, ich bin Anfänger. Also bitte seht es mir nach, dass ich eine eventuell so banale Frage stelle.
Danke schon mal! :-)
5 Antworten
"Derzeit bin ich dabei eine Datenbank zu schreiben. "
Moment. Wieso dann nicht Suche mit SQL?
Ich würde dir vorschlagen, eine rekursive Methode zu benutzen:
found = False
def isInList(search, my_list):
for element in my_list:
if isinstance(element, list):
return isInList(search, element)
else:
return element == search
In etwa so, habe ich aber nicht getestet.
Müsste klappen, die Frage ist eigentlich recht trivial, wenn man weiß, wie, aber vorher fast unlösbar ;-)
Und warum erstellst du nicht einfach mehrere „eindimensionale“ Listen? Das würde vieles vereinfachen … :-)
Diese Frage ist nicht banal :) Gute Antworten findest du aber eher auf Stackoverflow. Genauer Erklärung, etwa:
Möchtest du wissen, wie oft der Name in der Datenbank vorkommt? Möchtest du wissen, wo diese Namen genau stehen (also die Indices)? Oder nur den ersten Eintrag dieses Namens? Oder den ganzen Datenblock (die nächsten x größeren Dimensionen), in dem der Name vorkommt?
Ich hoffe das bringt dich wenigstens ein bisschen weiter...
Wo genau die Namen stehen, wollte ich wissen. Inzwischen habe ich es nach langem Rumprobieren rausgefunden. Vielen Dank für die Antwort und den Tipp mit den guten Antworten! :-)
Würde sagen du solltest für jede ebene die einträge ermitteln und einfach for schleifen verschachteln und mit if prüfen. Kann leider nicht viel python von daher kann ich dir keine exakte python lösung geben