Meine erste Idee war einen Hash mit einem Hash zu verketten, leider war der zweite Hash nicht eindeutig und wurde ständig überspielt.
Code: Alles auswählen
# hash1
# |------------|
# key key value vlaue
# | Gen | Atom | MM | PM |
# |-------------|
# hash2
Mein Versuch der leider nicht eindeutig war sah folgendermaßen aus.
sl[2] = MM or PM
sl[3] = Atom
sl[4] = Value
sl[5] = Gen
Code: Alles auswählen
#!/usr/bin/python
file = open('../../1/development/abm1.out','r')
genHash = {}
atomHash = {}
for line in file:
sl = line.split() # [S]plited[L]ine
if not atomHash.has_key(sl[3]): # wenn key nicht vorhanden, dann initialisiere den atomHash
atomHash[sl[3]] = {'MM':'none','PM':'none'}
if 'MM' in sp[2]: # weise dem MM einen Wert zu
atomHash[sl[3]]['MM'] = sl[4]
else:
atomHash[sl[3]]['PM'] = sl[4] # weise dem PM einen Wert zu
genHash[sl[5]] = {'median':'none','atom':atomHash[sl[3]]}
Kann man vielleicht einen Hash anlegen dem man drei Keys zuweisen kann um einen Wert zu speichern?
Etwas vergleichbares hab ich auch in Perl gesehen, allerdings hab ichs nicht geschafft in Python um zu bauen, wäre aber genial wenn ich so hinbekommen könnte da das selbe so in einer Zeile erledigt wurde:
$pmMMArray{$GEN}{$PMorMM}{$ATOM}=$Value;