【发布时间】:2017-05-15 09:11:00
【问题描述】:
我在 for 循环中的数组中添加值,但它一次又一次地在循环中添加相同的值。 这是我的代码:
for document in activityData:
activityInfo.append(document)
for document in activityInfo:
actRegCount = actregM.countAppliedReg(str(document['_id']),timeInt)
if (not document['owner'] in ownerIds) and (document['deleted']==0):
ownerIds['a']=str(document['owner'])
ownerIds['b']=actRegCount
ownerIds['c']=0
array.append(ownerIds)
和
for document in jobData:
jobInfo.append(document)
for document in jobInfo:
jobApplyCount = jobApplyM.countAppliedJob(str(document['_id']),timeInt)
if (not document['owner'] in ownerIds) and (document['deleted']==0):
ownerIds['a']=str(document['owner'])
ownerIds['b']=0
ownerIds['c']=str(jobApplyCount)
array.append(ownerIds)
但它一次又一次地添加相同的值。
输出:
[{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'}]
我是 python 新手,所以可能是一个愚蠢的错误。欢迎提出任何建议。
【问题讨论】:
-
您的
array.append(ownerIds)在if声明之外。这意味着如果条件返回 false 的情况,它会将相同的值附加到数组中 -
另外,您将
document['owner']放入ownerIds['a']。那么,document['owner'] in ownerIds不应该总是返回 false 吗? -
@kuro thnkx 寻求帮助,但我无法理解您的最后评论。你能解释更多吗?