我需要根据列表访问Python中的字典。例如:
lst = ['A', 'B', 'C']
然后字典访问应该是:
d['A']['B']['C']
列表可以是任何深度/元素。
解决此问题的最佳方法是什么?
答案 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)+'\']')
此处'\'][\''
是分隔符