আমার কাছে একটি জটিল অভিধান কাঠামো রয়েছে যা আমি সঠিক আইটেমটি সম্বোধনের জন্য কীগুলির একটি তালিকার মাধ্যমে অ্যাক্সেস করতে চাই।
dataDict = {
"a":{
"r": 1,
"s": 2,
"t": 3
},
"b":{
"u": 1,
"v": {
"x": 1,
"y": 2,
"z": 3
},
"w": 3
}
}
maplist = ["a", "r"]
অথবা
maplist = ["b", "v", "y"]
আমি নিম্নলিখিত কোডটি তৈরি করেছি যা কাজ করে তবে আমি নিশ্চিত যে কারও যদি ধারণা থাকে তবে এটি করার আরও ভাল এবং আরও কার্যকর উপায় আছে।
# Get a given data from a dictionary with position provided as a list
def getFromDict(dataDict, mapList):
for k in mapList: dataDict = dataDict[k]
return dataDict
# Set a given data in a dictionary with position provided as a list
def setInDict(dataDict, mapList, value):
for k in mapList[:-1]: dataDict = dataDict[k]
dataDict[mapList[-1]] = value