Tabelle als Dict?
Verfasst: Donnerstag 14. Dezember 2006, 09:22
Ich habe Daten in Form einer Tabelle vorliegen und muss damit arbeiten. Könnte vereinfacht so aussehen:
Als einziges Äquivalent in Python fällt mir eine Kombination aus List und Dict ein, also z.B.:
Frage 1: Gibt's noch was besseres?
Dann muss ich eine Liste von Daten mit dieser Tabelle abgleichen. Ich habe beispielsweise diesen Datensatz:
Ich muss nun checken, ob es in meiner Tabelle bereits einen Datensatz gibt, der name="bar" und parent=1 hat — ein Wert für id ist mir nicht bekannt. In SQL könnte ich mir nun die Abfrage SELECT * FROM table WHERE name='bar' AND parent=1 vorstellen, aber die Tabelle soll im Python-Programm als Variable vorliegen. Ich würde mir erstmal so behelfen:
Bei einer sehr großen Tabelle (10.000 Einträge und mehr) wird das zunehmend unperformant und zeitraubend.
Frage 2: Gibt's da nicht auch was besseres?
Code: Alles auswählen
id | name | parent
---+------+--------
1 | foo | None
2 | bar | 1
Code: Alles auswählen
rows = []
rows.append({'id':1, 'name':"foo", 'parent':None})
rows.append({'id':2, 'name':"bar", 'parent':1})
Dann muss ich eine Liste von Daten mit dieser Tabelle abgleichen. Ich habe beispielsweise diesen Datensatz:
Code: Alles auswählen
d = {'name':"bar", 'parent':1}
Code: Alles auswählen
rows = []
rows.append({'id':1, 'name':"foo", 'parent':None})
rows.append({'id':2, 'name':"bar", 'parent':1})
d = {'name':"bar", 'parent':1}
found = False
for i in rows:
if i['name'] == d['name'] and i['parent'] == d['parent']:
found = True
break
print found
Frage 2: Gibt's da nicht auch was besseres?