Python - While-Loop直到列表为空

时间:2016-10-08 16:21:32

标签: python

我正在使用Django,我有一个已转换为列表(unpaid_sales)的对象的查询集。我正在执行一个遍历此列表并对每个项目进行操作的进程,直到列表为空,或者给定的整数(bucket)达到零。

这是我设置它的方式:

while unpaid_sales:
    while bucket > 0:
        unpaid_sale = unpaid_sales.pop(0)
        ...do stuff

在某些情况下,我收到以下错误:

  

从空列表中弹出

我的逻辑出了什么问题?

3 个答案:

答案 0 :(得分:5)

不要使用单独的while循环。请执行以下操作:

while unpaid_sales and bucket > 0 :
    unpaid_sale = unpaid_sales.pop(0)
    ...do stuff

答案 1 :(得分:5)

您的最终标准必须略有不同:循环同时有项目且bucket为正。 or不是正确的操作。

while unpaid_sales and bucket > 0
    unpaid_sale = unpaid_sales.pop(0)
    #do stuff

答案 2 :(得分:3)

你应该做一个循环:while bucket>0 and unpaid_sales。在这里,您在bucket循环中弹出元素,然后只是检查bucket是否为正,但是您没有检查element_sales是否还有元素。