我正在使用Django,我有一个已转换为列表(unpaid_sales
)的对象的查询集。我正在执行一个遍历此列表并对每个项目进行操作的进程,直到列表为空,或者给定的整数(bucket
)达到零。
这是我设置它的方式:
while unpaid_sales:
while bucket > 0:
unpaid_sale = unpaid_sales.pop(0)
...do stuff
在某些情况下,我收到以下错误:
从空列表中弹出
我的逻辑出了什么问题?
答案 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
是否还有元素。