首页 > 解决方案 > 根据其他列表中的值对列表中的列表进行排序

问题描述

我想根据另一个列表中的值对列表中的列表进行排序。在示例中,第 5 个订单应放在 0 和 1 之前,因为到期日期较早。

我已经尝试过 for 循环和其他排序方法,但列表中的列表不是整数,这让 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]]

标签: pythonlist

解决方案


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]) 

推荐阅读