读取数组会填充并继续阅读

时间:2013-10-29 21:04:35

标签: python arrays loops

我有以下代码:

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?

1 个答案:

答案 0 :(得分: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
...