Python 从另一个引用dict元素?

Python 从另一个引用dict元素?,python,dictionary,reference,Python,Dictionary,Reference,在python中,一个dict元素可以引用另一个dict元素吗? F.e.: 我明白了: In [382]: h = { 1: {6:7}, 3:4 } In [383]: h Out[383]: {1: {6: 7}, 3: 4} In [384]: h[5]=h[1] In [385]: h Out[385]: {1: {6: 7}, 3: 4, 5: {6: 7}} In [386]: h[1][6] = 13 In [387]: h Out[387]: {1: {6: 13}

在python中,一个dict元素可以引用另一个dict元素吗? F.e.:

我明白了:

In [382]:  h = { 1: {6:7}, 3:4 }

In [383]: h
Out[383]: {1: {6: 7}, 3: 4}

In [384]: h[5]=h[1]

In [385]: h
Out[385]: {1: {6: 7}, 3: 4, 5: {6: 7}}

In [386]: h[1][6] = 13

In [387]: h
Out[387]: {1: {6: 13}, 3: 4, 5: {6: 13}}

尝试自下而上构建树。

是的,您当然可以将字典中的元素指向另一个元素。当您将h['c']分配给h['a']时,它们现在共享相同的内存位置:

h = { 'a' : 1, 'b' : 2 }
h['c'] = h['a']
h['c'] is h['a']
True
然而,Python中的许多类型都是不可变的。一旦创建了它们,就无法对其进行更改。int是这些类型之一,str、tuple和其他类型也是如此。所以一旦你改变了h['a'],h['c']就不再指向它了,因为它现在是一个不同的对象

h['a'] = 12
h['c'] is h['a']
False
但是,如果h['a']是可变类型,这包括list、dict和其他类型,当您将h['c']指向h['a']并对h['a']进行变异时,这种变化也将反映在h['c']中,因为h['c']指向h['a']所在的同一对象

下面是一个使用列表的非常简单的示例:

dct = {'x': [1,2,3]}
dct['y'] = dct['x']    
dct['y'] is dct['x']   
True

dct['x'][0] = 5
dct['y'] is dct['x']
True

dct
{'x': [5, 2, 3], 'y': [5, 2, 3]}

如果您使用整数,则不会。您试图解决什么问题?您的示例在多个方面都不清楚。为什么你的第二行有反斜杠?同样在第二行中,变量a是什么?字符串“a”是什么意思?等等。我100%看不出这个功能与构建树结构有什么关系。在树中,您甚至不能对同一节点有两个不同的引用。每个父节点都有子节点,我需要自下而上构建它。。。在合并过程中,将删除并添加节点。。它以列表开始,结果是一个树状目录。。
dct = {'x': [1,2,3]}
dct['y'] = dct['x']    
dct['y'] is dct['x']   
True

dct['x'][0] = 5
dct['y'] is dct['x']
True

dct
{'x': [5, 2, 3], 'y': [5, 2, 3]}