我有一个数字列表[5,10,15,20],并且我有某种“折扣”值,假设它是20。我想做的就是减去这个折扣值。从每个数字直到折扣等于0(20-5 = 15、15-10 = 5然后15-5 = 10)。我已经尝试过这样的事情:
for i in list:
while i[0] > 0:
i[0] - discount
if discount != 0:
continue
else:
break
但这似乎根本没有效果
答案 0 :(得分:1)
老实说,我不理解您在代码中所做的事情。尽量不要将list用作变量,因为它是关键字。如果我正确理解您的问题,以下代码将检查discount = 0。如果是,则中断。如果折扣的值大于0,则从折扣值中减去下一个清单项目。我已经做了折扣<= 0,以防止在折扣值变为负数的情况下产生无限值。您的代码中还有另一个问题。您执行i [0],其中i是列表中的整数,没有任何意义。
for i in my_list:
if discount<=0:
break
else:
discount -= i
答案 1 :(得分:0)
这可能是解决问题的方法
for i in my_list:
while discount> 0:
x = max(0,i-discount)
discount = (abs(min(0,i-discount)))
new_list.append(x)
break
else:
new_list.append(i)