Hi,
hab ein kleines Problem und keine Ahnung wie ich es implementieren soll.
Habe Daten in dieser Form: Option1_Option2_Option3_Option4 =Wert
Dabei sind Option 1-4 jeweils Strings.
Suche nun eine Möglichkeit z.B. Option1 = Weis zu setzen und dann alle Werte die Option1 = weis haben zu ploten oder weiter zu verarbeiten.
Dabei muss nicht nur eine Option gesetzt sein, sonder z.B. auch zwei Option3 und Option4 z.B.
Insbesondere das sie nicht von "oben" also wenn O2 gesetzt ist ist auch O1 gesetzt gewählt werden sehe ich als Problem.
Ansonsten könnte ich ja einfach ein Dictionary verwenden.
Hat jemand eine Idee wie ich das hier machen kann?
MfG
p90
Dictionary mit mehren Keys
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Das klingt nach einem Anwendungsfall fuer sqlite.
Offizielles Python-Tutorial (Deutsche Version)
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Hallo.
Ich würde einfach sqlite benutzen. Da deine Daten eh in den Hauptspeicher passen, kannst du die Datenbank einfach im Hauptspeicher erzeugen.
Als Alternative einfach ein Tupel mit 5 Einträgen (o1, o2, o3, o4, value), die filter-Funktion und eine Prädikat.
Sebastian
Ich würde einfach sqlite benutzen. Da deine Daten eh in den Hauptspeicher passen, kannst du die Datenbank einfach im Hauptspeicher erzeugen.
Als Alternative einfach ein Tupel mit 5 Einträgen (o1, o2, o3, o4, value), die filter-Funktion und eine Prädikat.
Sebastian
Das Leben ist wie ein Tennisball.
Ich habe das jetzt 2x gelesen und verstehe das Problem immer noch nicht. Soll das hier gehen?
Soll also ein Wert unter mehr als einem Schlüssel abgelegt werden können? Das könnte man so machen:
Stefan
Code: Alles auswählen
x["o1"] = "weiß"
assert x["o2"] == "weiß"
Code: Alles auswählen
class X:
def __init__(self): self.values = {}
def register(self, *keys):
h = [None]
for k in keys: self.values[k] = h
def __getitem__(self, key): return self.values[key][0]
def __setitem__(self, key, value): self.values[key][0] = value
Ich habe es so verstanden:sma hat geschrieben:Ich habe das jetzt 2x gelesen und verstehe das Problem immer noch nicht. Soll das hier gehen?
Code: Alles auswählen
x[1, 1] = "11"
x[1,2] = "12"
x[2,1] = "21"
assert x[1,None] == ["11", "12"]
assert x[2,None] == ["21"]
assert x[1,2] == ["12"]
Code: Alles auswählen
def equals(v): return lambda x: x==v
anyvalue = lambda x : True
assert x[equals(1), anyvalue] == ["11", "12"]
assert x[equals(1), equals(2)] == ["12"]
Das Leben ist wie ein Tennisball.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Ich habe ihn einfach so verstanden:
Aber die Beschreibung ist schon wenig präzise, da gebe ich sma recht.
Code: Alles auswählen
In [1]: data = (
...: ("a", "b", 42),
...: ("a", None, 33),
...: (None, "b", 69)
...: )
In [4]: print filter(lambda x: x[0] == "a" and x[1] == "b", data)
------> print(filter(lambda x: x[0] == "a" and x[1] == "b", data))
(('a', 'b', 42),)
In [5]: print filter(lambda x: x[0] == "a" or x[1] == "b", data)
------> print(filter(lambda x: x[0] == "a" or x[1] == "b", data))
(('a', 'b', 42), ('a', None, 33), (None, 'b', 69))
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert