我可以在同时弹出时进行迭代吗?你知道吗
def process_shipments(shipments_list):
next_day_orders = []
bamboo_shoots = 20
bamboo_leaves = 15
for order in shipments_list:
if order[1] < 20 and order[2] < 15 and bamboo_shoots > 0 and bamboo_leaves > 0:
bamboo_shoots -= order[1]
bamboo_leaves -= order[2]
total_cost = ((5*order[1])+(2*order[2]))
print (order[0], "-", "$",total_cost)
else:
next_day_orders += order
shipments_delete[:]
return next_day_orders
我在问两种版本是否都可以。我在努力优化效率。你知道吗
您正在迭代循环中修改
shipments_list
。不要在循环索引出错时这样做。你知道吗您正在迭代过程中从列表中删除项。这几乎总是给你奇怪的结果。根据您的注释,您只希望
shipments_list
在结尾处为空,因此请在结尾处而不是在循环的中间执行此操作:为什么不从循环中的列表中删除项?考虑这个例子:
只迭代偶数个元素。第一个元素是
0
。但是在这个循环中,0
被删除了,所以现在第一个元素是1
。下一个循环跳到第二个元素,现在是2
。1
从未处理过!3
和5
也是如此。你知道吗相关问题 更多 >
编程相关推荐