2013-10-29 69 views
0

我有以下代碼:讀取陣列填充它,並保持讀它

for account in accounts_list: 
    if not checked_accounts_list.has_key(account): 
     response = send_request("example/path", {"account_id":account, "page_size":50}) 
     get_total(response, "accounts", "account_id", **accounts_list**, account) 
     checked_accounts_list[account] = True 

accounts_list是保持184個結果的數組。在該循環中,調用一個名爲「get_total」的函數,該函數需要一些參數,其中一個參數正在傳遞當前正在迭代的相同數組(012)幾個問題,我相信這是由於accounts_list 擴大而我遍歷它的事實。

底線是,如何繼續閱讀accounts_list而不斷擴大?

+0

哪些問題你有?請特別指出 – Ashalynd

+0

,如果它已經在列表中,爲什麼第二次檢索該帳戶?你確定你的邏輯是正確的嗎? – Ashalynd

+0

'accounts_list'是一個實際的'list',或'dict'作爲'checked_accounts_list'是?一個'list'可以在它被追加時迭代,但是'dict'不能。看起來你可能實際上想要更像處理隊列的東西,然後是所有賬戶的註冊表。 'accounts_list'從哪裏來,你可以改變它的格式或加載方式嗎? –

回答

0

遍歷列表的不同副本:

for account in list(accounts_list): 

這將遍歷原始項目在accounts_list,但同時通過迭代循環未添加該消息的人的。

如果你想也遍歷項目增加,同時通過循環迭代,然後:

while accounts_list: 
    account = accounts_list.pop(0) 

例如,

def get_total(account, accounts_list): 
    accounts_list.append(2*account) 

accounts_list = [1] 
while accounts_list: 
    account = accounts_list.pop(0) 
    print(account) 
    get_total(account, accounts_list) 

產量

1 
2 
4 
8 
16 
... 
+0

我沒有關注,你能告訴我一個迭代accounts_list的完整代碼,並在擴展時繼續閱讀它嗎? –