我想根据另一个列表中的值对列表中的列表进行排序。在该示例中,由于到期日较早,因此应将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]]
答案 0 :(得分:0)
您可以尝试以下方法吗?
>>> 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]
答案 1 :(得分:0)
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])