假设你有一个列表
a = [3,4,1]
我希望这个信息指向词典:
b[3][4][1]
现在,我需要的是一个例行程序。 之后,我看到了价值,读写里面B的位置的值。
我不喜欢复制的变量。 我想直接改变变量b的内容。
假设你有一个列表
a = [3,4,1]
我希望这个信息指向词典:
b[3][4][1]
现在,我需要的是一个例行程序。 之后,我看到了价值,读写里面B的位置的值。
我不喜欢复制的变量。 我想直接改变变量b的内容。
假设b
是一个嵌套的字典,你可以这样做
reduce(dict.get, a, b)
访问b[3][4][1]
。
对于更一般的对象类型,使用
reduce(operator.getitem, a, b)
写值是多一点参与:
reduce(dict.get, a[:-1], b)[a[-1]] = new_value
这一切都假定你现在不元素的数量在a
提前。 如果你这样做,你可以去内维斯的回答 。
这将是基本的算法:
为了得到一个项目的价值:
mylist = [3, 4, 1]
current = mydict
for item in mylist:
current = current[item]
print(current)
要设置项的值:
mylist = [3, 4, 1]
newvalue = "foo"
current = mydict
for item in mylist[:-1]:
current = current[item]
current[mylist[-1]] = newvalue
假设列表长度是固定的,已知的
a = [3, 4, 1]
x, y, z = a
print b[x][y][z]
你可以把这个函数内部