从列表指向一个dicitonary变量

Smi*_*eMZ 3 python python-2.x python-2.6 python-2.7

假设你有一个清单

a = [3,4,1]
Run Code Online (Sandbox Code Playgroud)

我想用这些信息指向字典:

b[3][4][1]
Run Code Online (Sandbox Code Playgroud)

现在,我需要的是例程.在我看到值之后,在b的位置读取和写入一个值.

我不喜欢复制变量.我想直接更改变量b的内容.

Jol*_*per 12

假设b是一个嵌套字典,你可以这样做

reduce(dict.get, a, b)
Run Code Online (Sandbox Code Playgroud)

访问b[3][4][1].

对于更一般的对象类型,请使用

reduce(operator.getitem, a, b)
Run Code Online (Sandbox Code Playgroud)

写这个值有点复杂:

reduce(dict.get, a[:-1], b)[a[-1]] = new_value
Run Code Online (Sandbox Code Playgroud)

所有这些假设您现在不a提前输入元素数量.如果你这样做,你可以用neves的回答.