我有以下代码:
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?
答案 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
...