在python和tryton中 我不明白为什么我不能得到我想要的值,我不知道出了什么问题。在
假设self.pendingapr
有一个字段itemdescription
,有3个索引,总的来说它在itemdescriptions
中有small
,medium
,large
。我真的不知道问题是否在for循环中:
global M2Mdic
global M2Mldic2
M2Mdic = {}
M2Mldic2 = {}
res = {}
for x in self.pendingapr:
M2Mdic['itemdescription'] = str(x.itemdescription)
M2Mldic2[x.id] = M2Mdic
当我打印M2Mldic2时
^{pr2}$当我需要/期待的是
>>> {1:'small',2:'medium',3:'large'}
在Python中,映射变量是引用。所以在每次迭代中,如果你修改了所有的M2Mldic2映射,因为它们都是相同的。在
我认为你的代码应该是:
将同一对象放入
M2Mldic2
字典中的每个值。请记住,对象通常是通过引用传递的,需要复制时需要显式地复制它们。在这将为
M2Mldic2
中的每个值创建一个单独的字典。在为什么你需要中级词典?这完全是多余的
或者更像Python的方式(来自v.2.7)
^{pr2}$相关问题 更多 >
编程相关推荐