Python 计数迭代器仅追加最终计数值
我有一个循环,它在用BeautifulSoup解析的xml文件中分配字符串Python 计数迭代器仅追加最终计数值,python,python-3.x,loops,counter,Python,Python 3.x,Loops,Counter,我有一个循环,它在用BeautifulSoup解析的xml文件中分配字符串 count = 0 for i in oosASINS: sku = str(i) message.sku.string = sku message.quantity.string = "0" stringnum = str(count) message.messageid.string = stringnum messages.append(message) count +=1 它应该制作一个
count = 0
for i in oosASINS:
sku = str(i)
message.sku.string = sku
message.quantity.string = "0"
stringnum = str(count)
message.messageid.string = stringnum
messages.append(message)
count +=1
它应该制作一个文档,其中分配给每个新消息集的消息id被一个(0,1,2…等)迭代,但它只附加1-最终计数值,因此我得到的是(65,65,65…),其中最终计数值为66
我对此感到困惑,因为直到前一个count变量被指定为messageid之后,计数才会增加,但它始终能够输出65,因为您没有在循环中创建另一个
消息实例,因为
messages.append(message)
您的消息
列表包含65次对消息
对象的相同引用,并带有您最后分配给它的值
不知道如何创建消息
,我可以建议您:
messages.append(copy.deepcopy(message))
但是最好的方法是在循环中创建一个新的消息。看起来您需要在循环中创建一个新的消息实例重用与消息
相同的引用,这是一个经典。在循环中实例化一个新的消息
对象我不得不重写代码来生成一个新的“消息”,因为它最初是硬编码到软件中的。但在那之后,它起了作用。