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”的函数,该函数需要几个参数,其中一个参数是传递当前正在迭代的同一数组(以粗体突出显示)

我遇到了一些问题,我相信这是由于我在迭代时 account_list 扩展了。

底线是,我如何在不断扩展的同时继续阅读 accounts_list ?

4

1 回答 1

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
...
于 2013-10-29T21:09:45.887 回答