2016-12-31 21 views
-3

Ich habe eine verschachtelte Wörterbuch, das wie folgt aussieht:Wie erhält man die meisten geschachtelten Werte?

d = {"my momma" : {"your momma" : 1}, "flying on" : {"a broom" : 2}} 

Ich brauche alle meisten verschachtelte Werte (die 1 und die 2) 2.

Wie kann ich dies tun, sich zu vermehren? Ich kann es einfach nicht schaffen, auf sie zuzugreifen.

+0

Wo ist Ihr Code und was ist genau das Problem mit ihm? Stellen Sie eine [mcve] bereit. – jonrsharpe

+0

Ich habe keinen Code. Ich habe versucht, die Werte mit einer for-Schleife zu fangen, aber das hat einfach nicht funktioniert. – spiderkitty

+2

Es klingt sehr nach dir * Code * dann haben. Ist eine 'for' Schleife irgendwie * nicht * Code? Zeige etwas Mühe! – jonrsharpe

Antwort

-2
for key in d: 
    for skey in d[key]: 
     d[key][skey] *= 2 
print d 
+0

Vielen Dank! Das funktioniert gut! – spiderkitty

0

Rekursion, wenn Sie nicht wissen, wie viele Verschachtelungsebenen Sie haben:

INDEX = [] 

def disMantle(target, depth): 
    # ensure a list for given depth 
    while len(INDEX) <= depth: INDEX.append([]) 
    # analyze given target 
    for key in target: 
     atype = type(target[key]) 

     if atype == dict: 
      # next depth 
      disMantle(target[key], depth+1) 
     elif atype in [int,float]: 
      # record the numeric values 
      INDEX[depth].append({'key':key,'value':target[key]}) 

d = {"my momma" : {"your momma" : 1}, "flying on" : {"a broom" : 2.0}} 

disMantle(d, 0) 
print INDEX[-1] 
Verwandte Themen