在python中,从多维、维数可变的dictionary中获取一个值

2024-09-28 05:43:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一本多维字典。尺寸列表以变量形式给出。如何使用该列表中的所有维度并访问存储在末尾的值。在

def get_value(dict, dimensions):
    """
    dict is the multidimensional dict
    dimensions is a list of strings which specify all the dimensions
    """

如何以python方式编写下面的命令

^{pr2}$

Tags: ofthe列表get字典isvalue尺寸
1条回答
网友
1楼 · 发布于 2024-09-28 05:43:16

不太难,假设你用一种稍微不同的方式写下:

dict = dict[dimensions[0]]
dict = dict[dimensions[1]]
dict = dict[dimensions[2]]
......
dict = dict[dimensions[len(dimensions)-1]]

我们看到了一种模式。另一个需要注意的是,我们只是在迭代维度,我们可以这样做:

^{pr2}$

所以,事实上,我们可以:

def get_value(mapping, keys):
    for key in keys:
        mapping = mapping[key]
    return mapping

有趣的是,python为这种模式提供了一个快捷方式,它对一个初始元素重复应用一个操作,每个元素对应另一个序列的元素reduce()

def get_value(mapping, keys):
    return reduce(dict.get, keys, mapping)

相关问题 更多 >

    热门问题