2017-11-19 1 views
0

Ich erstelle 7 Wörterbücher, die einen Tag in einer Woche darstellen. Ein Wörterbuch wird aus 2 Listen erstellt. Alles funktioniert gut, aber es gibt Redundanz im Code, den ich entfernen möchte. Lassen Sie uns den Code zuerstNamen verschiedener Wörterbücher aus Elementen einer Liste zuweisen

day_names = ['mon','tue','wed','thurs','fri','sat','sun'] 

time_values = np.linspace(1,23,23,dtype='int') # print from 1,2...23 

for day_iterator in range(1,7+1): 


    number_of_clients = [] # create empty list that will hold number of clients 
    for i in range(1,24,1): 
     rand_value = random.randint(1,20) # generate number of clients 
     number_of_clients.append(rand_value) 

    if day_iterator == 1: 
     mon = dict(zip(time_values,number_of_clients)) 

    elif day_iterator == 2: 
     tue = dict(zip(time_values,number_of_clients)) 

    elif day_iterator == 3: 
     wed = dict(zip(time_values,number_of_clients)) 

    elif day_iterator == 4: 
     thurs = dict(zip(time_values,number_of_clients)) 

    elif day_iterator == 5: 
     fri = dict(zip(time_values,number_of_clients)) 

    elif day_iterator == 6: 
     sat = dict(zip(time_values,number_of_clients)) 

    elif day_iterator == 7: 
     sun = dict(zip(time_values,number_of_clients)) 

so grundsätzlich anstelle der Verwendung sun sehen, mon ich so etwas wie

str(day_names[i+1]) = dict(zip(time_values,number_of_clients)) 
+0

Und Sie möchten, dass diese Dicts im Namespace herumschweben oder in einer Liste/einem Diktat zusammengefasst werden? – roganjosh

+0

Wörterbücher löst meinen Zweck in diesem Fall –

Antwort

0

verwenden möchten Was Sie suchen, locals(), zB:

locals()[day_names[i-1]] = ... 

Siehe auch globals()

Allerdings die Verwendung von locals() oder globals() wird etwas abgeraten. Erwägen Sie, ein Wörterbuch zu verwenden, um diese Werte zu aggregieren, z. B .:

+0

es gab mir diesen Fehler, IndexError: Listenindex außerhalb des Bereichs –

+1

Indizes in Listen beginnen von Null. Wenn "i" zwischen 1 und 7 liegt, verwenden Sie "i-1" – fferri

Verwandte Themen