动态嵌套字典Python

时间:2017-12-19 19:16:15

标签: python list loops dictionary nested

我需要根据列表访问Python中的字典。例如:

lst = ['A', 'B', 'C']

然后字典访问应该是:

d['A']['B']['C']

列表可以是任何深度/元素。

解决此问题的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

我会创建一个迭代列表的函数:

d = {}
d['A'] = {}
d['A']['B'] = {}
d['A']['B']['C'] = 'value'
lst = ['A', 'B', 'C']

def get_value(d, lst):
    for elem in lst:
        d = d[elem]
    return d

print get_value(d, lst)  # outputs 'value'

答案 1 :(得分:0)

也可以使用应用于从列表生成的字符串的eval函数:

eval('d[\''+'\'][\''.join(lst)+'\']')

此处'\'][\''是分隔符