Python 中的多維字典


Python中的dict可以實現迅速查找。那么有沒有像數組有二維數組一樣,有二維的字典呢?比如我需要對兩個關鍵詞進行查找的時候。2D dict 可以通過

dict_2d = {'a': {'a': 1, 'b': 3}, 'b': {'a': 6}}

來建立,並通過

dict_2d['a']['b']

來訪問。但是添加一個新的 “key-value”對卻比較復雜。對一維字典,可以用

dict_1d = dict()
dict_1d['a'] = 1

或者

dict_1d.update({'a': 1})

來實現。但是”2-D” dictionary 新添一個”key-value”對時,不能簡單的用

dict_2d['a']['c'] = 8

的形式。因為二維字典的兩層key和value之間會混淆,需要判斷第一個key是否已經存在了。添加二維的字典可以通過一個函數來簡單實現:

def addtodict2(thedict, key_a, key_b, val): 
    if key_a in adic:
        thedict[key_a].update({key_b: val})
    else:
        thedict.update({key_a:{key_b: val}})

同理,三維數組

def addtodict3(thedict,key_a,key_b,key_c,val):
    if key_a in thedict:
        if key_b in thedict[key_a]:
            thedict[key_a][key_b].update({key_c:val})
        else:
            thedict[key_a].update({key_b:{key_c:val}})
    else:
        thedict.update({key_a:{key_b:{key_c:val}}})

 遍歷三維字典

for key1 in thedict:
    for key2 in thedict[key1]:
        for key3 in thedict[key1][key2]:
            print thedict[key1][key2][key3]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM