gpt4 book ai didi

python - 从多级字典中提取特定路径

转载 作者:行者123 更新时间:2023-11-28 19:49:29 24 4
gpt4 key购买 nike

我有一个矩阵:

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

最佳答案

一个较短的选项是:

import operator
from functools import reduce # in python 3 only; reduce is a builtin in python 2

def get_target_path(path, matrix):
try:
return reduce(operator.getitem, path, matrix)
except KeyError:
return None

但我不认为它真的更好;我可能会按照您的方式编写它(尽管间距不同 :p)。

关于python - 从多级字典中提取特定路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19127702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com