以下代码将生成一个嵌套字典。但是
l = [1,2,3,4]
n_dict = current = {}
for n in l:
current[n] = {} # would n_dict get update?
# print(current) # just to check
# print(n_dict) # just to check
current = current[n] # would n_dict get update?
# print(current) # just to check
# print(n_dict) # just to check
print(n_dict)
n_dict 已成为嵌套字典,而 current 则不是。那么 n_dict 会或不会在 foo-loop 内获得更新的规则是什么(参见两个问题行)?
谢谢
答案 0 :(得分:1)
让我告诉你上面的代码是如何工作的 -
n_dict = current = {}
当你这样做时,n_dict 和 current 将指向同一个空字典。
现在,在 for 循环中,看到这一行 -
current = current[n]
在这里,您正在更改当前指向一个空字典的变量。 您正在使用当前变量来修改原始字典,并且可以通过 n_dict 指针访问原始字典。