动态嵌套字典Python [重复]

问题描述 投票:2回答:2

这个问题在这里已有答案:

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

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

然后字典访问应该是:

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

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

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

python list loops dictionary nested
2个回答
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'

0
投票

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

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

这里'\'][\''是一个分隔符

© www.soinside.com 2019 - 2024. All rights reserved.