私はマトリックスを持っています:
matrix = {
'A' : {
'A1' : {
'A11' : [1,2,3],
'A12' : [4,5,6],
},
'A2' : {
'A21' : [11,12,14],
'A22' : [14,15,16],
},
'A3' : {
'A31' : [111,112,114],
'A32' : [114,115,116],
},
}
}
動的にクエリされる特定のパスを取得したい - そのようなmatrix['A']['A2']['A22']
or matrix['A']['A2']
.
簡単に言うと、複数レベルの辞書と、その辞書の階層にマップされる文字列のリストがあります。そのような['A','A1','A2']
これを行う最もpythonicな方法がわかりません。
以下の作品。もっと簡潔で読みやすい方法があるかどうか疑問に思っています。インプットを提供し、明らかな間違いを修正するために、別の目のセットが欲しい.
get_target_path( pth , mtx ):
try:
value = mtx
for level in pth :
value = value[level]
return value
except KeyError :
return None
target_path = ['A','A2','A22']
result = get_target_path( target_path , matrix )