Accedi agli elementi del dizionario nidificati tramite un elenco di chiavi?

|

Ho una complessa struttura di dizionario a cui vorrei accedere tramite un elenco di chiavi per indirizzare l'elemento corretto.

dataDict = { " a":{ "r": 1, "s": 2, "t": 3 }, "b":{ "u": 1, "v": { "x": 1, "y": 2 , "z": 3 }, "w": 3 } } maplist = ["a", "r"] 

o

maplist = ["b", "v", "y"] 

Ho creato il seguente codice che funziona ma sono sicuro che esiste un modo migliore e più efficiente per farlo se qualcuno ha un'idea.

# Ottieni un dato dato da un dizionario con la posizione fornita come lista def getFromDict(dataDict, mapList): for k in mapList: dataDict = dataDict[k] return dataDict # Imposta un dato dato in un dizionario con la posizione fornita come lista def setInDict(dataDict, mapList, value): for k in mapList[:-1]: dataDict = dataDict[k] dataDict[mapList[-1]] = valore < /codice>