Вычитание элементов списка на основе их ранга - PullRequest
0 голосов
/ 02 июля 2019

У меня есть некоторое число, например 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...