2017-09-24 3 views
1

Ich habe einige verschachtelte Python-Wörterbücher. Ich möchte das Wörterbuch verwenden, um verschiedene Summen zu organisieren, die mein Skript zusammenfasst. I definiert das Wörterbuch als:Einfache Möglichkeit, verschachtelte Wörterbücher zu definieren?

periodDict = {'Group01':{'Bin01':{'Tally01':0, 'Tally02':0}, \ 
         'Bin02':{'Tally01':0, 'Tally02':0}}, \ 
       'Group02':{'Bin01':{'Tally01':0, 'Tally02':0}, \ 
         'Bin02':{'Tally01':0, 'Tally02':0}}} 

Mein Problem ist, dass in der realen Skript, ich habe 52 Perioden, 25 Gruppen und 12 Behälter.

Gibt es einen einfacheren Weg zu definieren und das Wörterbuch zu initialisieren, die einen sehr großen Wörterbuch im Skript zu bauen? Und Änderungen an der Wörterbuchstruktur sind ein Albtraum. Natürlich würde Ich mag so etwas wie zu tun:

binDict = {'Tally01':0, 'Tally02':0} 
groupDict = {'Bin01':binDict, 'Bin02':binDict} 
periodDict = {'Group01':groupDict, 'Group02':groupDict} 

aber das funktioniert nicht, weil jede Änderung einer Gruppe01 tally wird auch die entsprechende Group02 tally ändern. Zum Beispiel:

In [1]: binDict = {'Tally01':0, 'Tally02':0} #Initalize to 0 

In [2]: groupDict = {'Bin01':binDict, 'Bin02':binDict} 

In [3]: periodDict = {'Group01':groupDict, 'Group02':groupDict} 

In [4]: periodDict['Group01']['Bin01']['Tally01'] = 1 # Change one value 

In [5]: periodDict['Group01']['Bin01']['Tally01'] 
Out[5]: 1 

In [6]: periodDict['Group02']['Bin01']['Tally01'] # Group 2 also changed 
Out[6]: 1 

Was kann ich tun, um dieses Problem einfacher und einfacher zu verwalten? Vielen Dank!

+0

Sie für die 52 Perioden werden die Daten hartzucodieren, 25 Gruppen und 12 Bins in Ihren Code (im Gegensatz zu bekommen von einer anderen Datenquelle)? Das Problem wäre leichter zu lösen, wenn die verschachtelten Wörterbücher programmgesteuert erstellt würden. – martineau

Antwort

1

Anstatt Verweise auf die Wörterbücher zu verwenden, verwenden Sie copy.deepcopy(), um tiefe Kopien von ihnen zu erstellen. Auf diese Weise eines der Aktualisierung werden die anderen nicht beeinflussen:

from copy import deepcopy 

binDict = {'Tally01': 0, 'Tally02': 0} 
groupDict = {'Bin01': deepcopy(binDict), 'Bin02': deepcopy(binDict)} 
periodDict = {'Group01': deepcopy(groupDict), 'Group02': deepcopy(groupDict)} 
+1

Sehr einfache Lösung und funktioniert genau so, wie ich es brauche. Vielen Dank! – slalomchip

0

Nur Schleifen verwenden, damit Sie es programmatisch erstellen können, tun Sie es nicht schaffen „von Hand“:

>>> num_groups = range(1, 26) 
>>> num_bins = range(1, 13) 
>>> num_tally = range(1, 3) 
>>> period_dict = {} 
>>> for gn in num_groups: 
...  groupdict = {} 
...  period_dict[f"Group{gn:02}"] = groupdict 
...  for bn in num_bins: 
...   bindict = {} 
...   groupdict[f"Bin{bn:02d}"] = bindict 
...   for tn in num_tally: 
...    bindict[f"Tally{tn:02d}"] = 0 
... 

Und das Ergebnis:

>>> from pprint import pprint 
>>> pprint(period_dict) 
{'Group01': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group02': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group03': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group04': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group05': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group06': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group07': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group08': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group09': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group10': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group11': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group12': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group13': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group14': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group15': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group16': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group17': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group18': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group19': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group20': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group21': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group22': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group23': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group24': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}, 
'Group25': {'Bin01': {'Tally01': 0, 'Tally02': 0}, 
      'Bin02': {'Tally01': 0, 'Tally02': 0}, 
      'Bin03': {'Tally01': 0, 'Tally02': 0}, 
      'Bin04': {'Tally01': 0, 'Tally02': 0}, 
      'Bin05': {'Tally01': 0, 'Tally02': 0}, 
      'Bin06': {'Tally01': 0, 'Tally02': 0}, 
      'Bin07': {'Tally01': 0, 'Tally02': 0}, 
      'Bin08': {'Tally01': 0, 'Tally02': 0}, 
      'Bin09': {'Tally01': 0, 'Tally02': 0}, 
      'Bin10': {'Tally01': 0, 'Tally02': 0}, 
      'Bin11': {'Tally01': 0, 'Tally02': 0}, 
      'Bin12': {'Tally01': 0, 'Tally02': 0}}} 

Auf diese Weise, Sie teilen sich nicht dict s:

>>> period_dict['Group03']['Bin04']['Tally01'] = 99 
>>> period_dict['Group06']['Bin04']['Tally01'] 
0 
0

Wenn Sie wirklich das ganze Wörterbuch von Anfang an initialisieren müssen können Sie dies wie folgt tun:

periodDict = {} 
groupnames = ['Group{:02d}'.format(nr+1) for nr in range(52)] 
binnames = ['Bin{:02d}'.format(nr+1) for nr in range(25)] 
tallynames = ['Tally{:02d}'.format(nr+1) for nr in range(12)] 

for groupname in groupnames: 
    periodDict[groupname] = {} 
    for binname in binnames: 
     periodDict[groupname][binname] = {} 
     for tallyname in tallynames: 
      periodDict[groupname][binname][tallyname] = 0 
Verwandte Themen