You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python高效实现两列表元素按索引均值排序?

Pythonic高效实现:按两列表索引均值排序整数

给定两个整数列表:

lst1 = [4,1,3,5,2]
lst2 = [1,3,5,2,4]

需求说明:

  • 计算每个整数在两个列表中的索引均值(例如整数1在lst1的索引为1,lst2的索引为0,均值为0.5)
  • 将所有整数按索引均值从小到大排序,预期结果:
result = [1, 3, 4, 5, 2]

对应各元素的索引均值分别为:0.5、1.5、2、2.5、3.5

高效Pythonic实现方式

利用字典的O(1)索引查找特性,结合内置sorted函数实现,无需复杂迭代:

lst1 = [4,1,3,5,2]
lst2 = [1,3,5,2,4]

# 快速生成元素到对应列表索引的映射字典
index_map1 = dict(zip(lst1, range(len(lst1))))
index_map2 = dict(zip(lst2, range(len(lst2))))

# 以索引均值为排序依据,对元素进行排序
sorted_result = sorted(lst1, key=lambda num: (index_map1[num] + index_map2[num]) / 2)

print(sorted_result)  # 输出: [1, 3, 4, 5, 2]

实现说明

  1. 字典映射索引:通过dict(zip(lst, range(len(lst))))快速构建元素到索引的映射,这是Python中生成此类映射的简洁方式,且内置操作效率极高。
  2. 排序逻辑:sorted函数的key参数接收lambda表达式,直接计算每个元素在两个列表中的索引均值作为排序依据,无需额外循环遍历。
  3. 效率优势:字典查找为O(1)时间复杂度,排序为O(n log n),整体性能远优于嵌套迭代查找索引的实现方式。

内容的提问来源于stack exchange,提问作者You_Donut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 06:25:22