2017-02-02 8 views
2

Ich habe ein Wörterbuch - wo die Werte Wörterbücher sind.
Wie extrahiere ich die eindeutige Menge der Werte aus den untergeordneten Wörterbüchern auf die effizienteste Weise?Verarbeitung Wörterbuch der Wörterbücher

{ 'A':{'A1':'A1V','B2':'A2V'..}, 
    'B':{'B1':'B1V','B2':'B2V'...}, 
    ...} 

Erwartete Ausgabe:

['A1V','A2V','B1V','B2V'...] 

Antwort

5

In einer einzigen Zeile:

>>> [val for dct in x.values() for val in dct.values()] 
['A1V', 'A2V', 'B2V', 'B1V'] 

Sie dict von x dict genannt Unter der Annahme.

Sie haben erwähnt, einzigartig, in diesem Fall die Liste Verständnis durch einen Satz Verständnis ersetzen:

>>> {val for dct in x.values() for val in dct.values()} # curly braces! 
{'A1V', 'A2V', 'B1V', 'B2V'} 
0
uniques = set() 
for ukey, uvalue in outerdic.items(): 
    for lkey, lvalue in uvalue.items(): 
     uniques.add(lvalue) 
print uniques 

einen Satz verwenden funktionieren sollte. Neu bei stackoverflow, um herauszufinden, wie Syntax-Highlighting funktioniert.

Dies setzt voraus, dass das Wörterbuch Outerdic heißt.

0
dictionary = { 'A':{'A1':'A1V','B2':'A2V'},'B':{'B1':'B1V','B2':'B2V'}} 

for key in dictionary.keys() : 
    dict1 = dictionary[key] 
    for key1 in dict1.keys(): 
     print(dict1[key1]) 

versucht, es so einfach wie möglich zu halten.

Verwandte Themen