我有一些数字,例如1200,并且有2个列表:值列表,例如[100,100,200,150,10,20]和优先级列表[1,2,1,1,3,2]。任务是从给定数字(1200)中减去大于0的列表元素,但首先,我应减去等级1的元素,再减去等级2的元素,依此类推。
我唯一的想法是对元素进行排序,但是看起来效率很低,尤其是对于大型数据集。
number = 500
values = [100,100,200,150,10,20]
priorities = [1,2,1,1,3,2]
df = pd.DataFrame({'values_subs': values,
'priorities': priorities
})
df.sort_values('priorities',inplace=True)
for i in df.values_subs:
number = number - i
if number < 0:
number = 0
break
print(number)