python - 获取列表中最小项的索引
问题描述
我想获取列表中最小项目的索引,但在平局的情况下。我想使用两个最小项目的位置并在另一个列表中比较这些位置。
order = [4, 1 ,2 ,1 ]
LPT = [20, 10, 5, 20]
new_order = []
我想从订单列表中的最小值中获取索引,如果出现平局,请使用 LPT 中同一位置的最大值。
new_order
应该是这样的:
new_order = [3,1,2,0]
解决方案
使用列表理解:
[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]
推荐阅读
- nginx - 同一主机上的 NGINX 多个站点
- python - 在 Databricks python notebook 中,如何导入 file1 对象与 file2 位于不同的目录中?
- html - stroke url not working in Edge and IE 11 SVG
- python - pip:没有模块名称 _internal.main
- javascript - 如何将 for 循环内生成的数组推送到循环外的空数组中?
- c# - 从循环启动多个线程时出现 IndexOutOfRangeException
- javascript - babylonjs 从导入的网格返回未定义
- postgresql - 在 psycopg2 中,为什么你会使用 execute_batch 而不是 execute_values?
- ruby - 带有块的Ruby递归方法
- javascript - 嵌套激活中的“...”实际上是如何工作的?(Vuetify)