Python嵌套字典循环更新

时间:2021-04-17 17:26:20

标签: python

以下代码将生成一个嵌套字典。但是

   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 内获得更新的规则是什么(参见两个问题行)?

谢谢

1 个答案:

答案 0 :(得分:1)

让我告诉你上面的代码是如何工作的 -

n_dict = current = {}

当你这样做时,n_dict 和 current 将指向同一个空字典。

现在,在 for 循环中,看到这一行 -

current = current[n]

在这里,您正在更改当前指向一个空字典的变量。 您正在使用当前变量来修改原始字典,并且可以通过 n_dict 指针访问原始字典。