arrayList = []
for x in allValues:
result = model(x)
arrayList.append(wM) # appends the wM object to the list
wM.reset() # clears the wM object
您需要附加一份副本:
import copy
arrayList = []
for x in allValues:
result = model(x)
arrayList.append(copy.copy(wM)) # appends a copy to the list
wM.reset() # clears the wM object
在修改列表内容之前,需要创建列表的副本。复制列表的快捷方式是:
示例:
以及显示修改原始列表的默认行为(因为Python中的名称只是对底层对象的引用):
注意,这只适用于列表。如果需要复制词典的内容,则必须按照其他人的建议使用
copy.deepcopy()
。尽管您应该展示代码的外观,但我认为这种情况非常常见。见copy/deepcopy
你的问题与此类似吗:
如果是,则只需在存储对象时复制它们:
有问题的对象应该实现一个} 的文档。您可能还对
__copy__
方法来复制对象。请参阅^{copy.deepcopy
感兴趣,它也在那里。编辑:问题在于:
您需要附加一份副本:
但我还是不清楚
wM
是从哪里来的。你不就是一遍又一遍地复制同一个wM
对象吗,除了第一次清除它之后,剩下的都是空的吗?或者model()
修改wM
(这听起来像是一个可怕的设计缺陷)?你为什么要扔掉result
?相关问题 更多 >
编程相关推荐