ich hoffe ihr könnt mir bei meinem blöden Dictionary Problem weiterhelfen, irgendwie steh ich auf dem Schlauch...
Mit folgendem Beispielcode will ich eigentlich nichts weiter erreichen, als ein Dictionary zu erhalten, dessen Einträge ich über z.B. nodaldata_dict[2]['u2'] ansprechen kann. Das Dictionary soll dabei selbstständig für den zweiten Schlüssel anwachsen sprich, num_nodes ist bekannt und varnames ist unbekannt (falls es nicht anders geht, könnte ich zur Not auch varnames in einer Vorher-Schleife auslesen). Die Verschachtelung der beiden Schleifen ist leider nicht anders möglich und quasi vorgegeben...
Code: Alles auswählen
import time
varnames=['u1','u2','nt121', 'n11']
num_nodes=3
nodaldata_dict = {}.fromkeys([x for x in range(num_nodes)], {})
for name in varnames:
for i in range(num_nodes):
if not name == "nt121":
print 'node:', i, name, time.time()
nodaldata_dict[i][name] = time.time()
time.sleep(0.1)
for key in nodaldata_dict.keys():
print '->', key, nodaldata_dict[key]
Code: Alles auswählen
node: 0 u1 1257335371.31
node: 1 u1 1257335371.41
node: 2 u1 1257335371.51
node: 0 u2 1257335371.61
node: 1 u2 1257335371.71
node: 2 u2 1257335371.81
node: 0 nt11 1257335371.91
node: 1 nt11 1257335372.01
node: 2 nt11 1257335372.11
-> 0 {'nt11': 1257335372.107372, 'u1': 1257335371.5055981, 'u2': 1257335371.8064871}
-> 1 {'nt11': 1257335372.107372, 'u1': 1257335371.5055981, 'u2': 1257335371.8064871}
-> 2 {'nt11': 1257335372.107372, 'u1': 1257335371.5055981, 'u2': 1257335371.8064871}
Code: Alles auswählen
-> 0 {'nt11': 1257335371.91, 'u1': 1257335371.31, 'u2': 1257335371.61}
-> 1 {'nt11': 1257335372.01, 'u1': 1257335371.41, 'u2': 1257335371.71}
-> 2 {'nt11': 1257335372.11, 'u1': 1257335371.51, 'u2': 1257335371.81}
Viele Grüße
Uwe