【发布时间】:2014-10-01 20:48:35
【问题描述】:
我在 Python 中有一个树结构,其中每个节点都是一个列表 [dict,int]。字典指向孩子们。叶子是纯整数,没有列表来节省内存。现在我想通过一个常数因子来缩放每个节点中的整数值。我编写了以下递归函数,它采用根节点和因子:
def scale(node,factor):
if type(node) != list:
node *= factor;
else:
node[1] *= factor;
for key in node[0]:
scale(node[0][key],factor);
我的印象是离开节点没有因为这些 Python 引用/取消引用问题而改变。这是真的吗?
【问题讨论】:
-
你测试过吗?为什么不寻找证据来支持您的“印象”?
-
我有一个规范化约束,即所有子节点整数的总和是父节点的整数。在缩放之前但不满足此约束。如果我正确地进行了数学运算,那么这两种情况都应该满足。而且问题似乎不会出现在树的更高级别。
-
在
if语句的两个分支中添加一些print语句。当你运行程序时,它会告诉你发生了什么。 -
您能否提供一个minimal example,包括数据,以便其他人可以复制该问题?
标签: python dictionary reference tree dereference