根据其排名列出元素减法

时间:2019-07-02 14:53:44

标签: python python-3.x list numpy

我有一些数字,例如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)

0 个答案:

没有答案