2017-05-15 8 views
1

forループに配列の値を追加していますが、ループ内に同じ値を繰り返し追加しています。ここ は私のコードです:キーペア配列ループのpythonで同じ値を追加

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に新しいですので、それは愚かな誤りであるかもしれません。どんな提案も大歓迎です。

+0

あなた 'array.append(ownerIds)は' '外if'文です。これは、条件がfalseを返す場合、同じ値を配列に追加することを意味します。 – kuro

+0

また、 'document ['owner']'を 'ownerIds ['a']'に入れます。だから、ownerIdsのドキュメント['owner']は常にfalseを返してはいけませんか? – kuro

+0

@kuro thnkxに助けがありましたが、あなたの最後のコメントを理解できませんでした。あなたはもっと多くのplz – Vivek

答えて

0

あなたappendであなたのOwnerIdcopyを試してみてください(とifappendを置く):

import copy 

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(copy.deepcopy(ownerIds)) 
+0

thnkxについて説明できますか?私はディープコピーについて全く知らない。あなたはそれについてもっと説明することができますか? – Vivek

+0

あなたの問題はまだ解決されていますか? – Nuageux

+0

ohhはい...私は大邸宅を忘れました – Vivek

関連する問題