2017-02-02 212 views
2

我有一本詞典 - 其中的值是詞典本身。
如何以最有效的方式從子字典中提取唯一的值集合?詞典的處理詞典

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

預期輸出:

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

回答

5

在單行:

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

假設你命名你的字典x的字典。

你提到獨一無二的,在這種情況下,由一組-理解取代列表理解:

>>> {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 

使用一組應該工作。新的到stackoverflow,試圖找出語法高亮如何工作。

這假定字典被稱爲「外部」。

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]) 

試圖保持儘可能簡單。