Listen mit Listenelementen durchsuchen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mar-ko
User
Beiträge: 2
Registriert: Sonntag 29. November 2009, 12:25

Hallo,

seit geraumer Zeit sitze ich vor diesem Problem. Ich habe eine Liste, die mehrere Listen enthält:

Aufgebaut ist sie nach folgendem Prinzip:
Baujahr, Reihe, Artikelnummer, Artikelname

Bsp.:
[[1979,classic space,885,Raumgleiter],
[1979,classic space,886,Astronautenauto],...]

Ich möchte diese Liste nach einem Begriff durchsuchen lassen. Falls der Begriff öfter auftaucht, soll er einer zweiten Liste hinzugefügt und ausgegeben werden.
Es soll dabei nicht nur der Begriff einer 2. Liste hinzugefügt werden, sondern das dazugehörige Listenelement.

Ich würde mich über Denkansätze/Hinweise sehr freuen (Über die Lösung natürlich auch :-).


Gruß mar-ko
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hallo.

Die einfachste Möglichkeit ist wahrscheinlich die filter-Funktion zu verwenden oder eine list-comprehension dafür zu schreiben. Ich rate dir aber eher zu einer Datenbank. Damit bist du wesentlich flexibler und kannst auch komplizierte anfragen relativ leicht gestalten. Schau dir dazu mal SQLite an, das genügt wahrscheinlich schon.
Das Leben ist wie ein Tennisball.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Code: Alles auswählen

rows = [
    [1979,'classic space',885,'Raumgleiter'], 
    [1979,'classic space',886,'Astronautenauto']
]

def find_by_description(s):
    return [row for row in rows if s in row[3]]

print find_by_description("Raum")
Stefan
mar-ko
User
Beiträge: 2
Registriert: Sonntag 29. November 2009, 12:25

Vielen Dank euch beiden. :D

Über kurz oder lang ist eine Datenbank wohl die elegantere Lösung.
Jetzt werde ich die list comprehension erstmal in mein Programm einfügen. Vielen Dank sma.


Gruß mar-ko
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Eine Datenstruktur mit Klassen wäre eventuell auch geeignet, wenn es nicht zu viele Daten sind. Oder natürlich beides (also ORM, wie z.B. SQLAlchemy).
Antworten