获取列表中最小项的索引

时间:2019-04-13 06:03:10

标签: python list

我想获取列表中最小项目的索引,但如果出现平局。我想同时使用两个最小项目的位置,并在另一个列表中比较这些位置。

order = [4, 1 ,2 ,1 ]
LPT = [20, 10, 5, 20]
new_order = []

我想从订单列表中的最小值获取索引,如果出现平局,请使用LPT中相同位置的最大值。

new_order应该是这样的:

new_order = [3,1,2,0]

1 个答案:

答案 0 :(得分:1)

使用列表理解:

[x for x, _ in sorted(enumerate(zip(order, LPT)), key=lambda x: (x[1][0], -x[1][1]))]

代码

order = [4, 1, 2, 1]
LPT = [20, 10, 5, 20]

new_order = [x for x, _ in sorted(enumerate(zip(order, LPT)), key=lambda x: (x[1][0], -x[1][1]))]
# [3, 1, 2, 0]