Списки заказов в списке на основе значений из другого списка - PullRequest
0 голосов
/ 02 апреля 2019

Я хочу отсортировать списки в списке на основе значений из другого списка.В этом примере 5-й порядок должен быть размещен перед 0 и 1, поскольку срок выполнения более ранний.

Я уже пробовал циклы и другие методы сортировки, но список в списке не является целым числом, что также делает ikтяжело для меняПоэтому я понятия не имею, чтобы решить следующее:

orders = [[0, 1, 5], [2, 3 ,4]]
##due date for each order
duedates = [5000, 5000, 4500, 3000, 3000, 2750]

expected output: [[5,0,1], [4,3,2]]

Ответы [ 2 ]

0 голосов
/ 02 апреля 2019
for order in orders:
    orders_due = [duedates[i] for i in order]
    sorted_order = sorted(zip(order, orders_due), key=lambda x:x[1])
    print([i for (i,j) in sorted_order]) 
0 голосов
/ 02 апреля 2019

Можете ли вы попробовать следующее:

>>> import numpy as np
>>> orders = np.array([[0, 1, 5], [2, 3 ,4]])
>>> duedates = np.array([5000, 5000, 4500, 3000, 3000, 2750])
>>> duedates = duedates.reshape(orders.shape)
>>> for i, j in zip(orders, duedates):
...   print([x for __, x in sorted(zip(j, i))])
...
[5, 0, 1]
[4, 2, 3]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...