当前位置: 首页 > news >正文

将b[索引]中元素按照a中元素的值进行排序

将b[索引]中元素按照a中元素的值进行排序

      • 🔍 逐部分解释
        • ✅ `range(len(deta_f))`
        • ✅ `key=lambda k: deta_f[k]`
        • ✅ `reverse=True`
      • 🧠 举个例子
      • 🎯 应用场景(为什么这样写?)
      • ✅ 总结

通义用来代码解释,简直是详细到无脑读!
代码”sorted_id = sorted(range(len(deta_f)), key=lambda k: deta_f[k], reverse=True)“

这行代码:

sorted_id = sorted(range(len(deta_f)), key=lambda k: deta_f[k], reverse=True)

的作用是:根据列表 deta_f 中元素的大小,对它们的索引进行排序,并将排序后的索引按从大到小的顺序保存在 sorted_id 中。


🔍 逐部分解释

range(len(deta_f))
  • deta_f 是一个列表。
  • len(deta_f) 表示这个列表的长度(元素个数)。
  • range(len(deta_f)) 会生成从 0len(deta_f)-1 的一组索引。

例如:

deta_f = [3, 1, 4, 1, 5]
range(len(deta_f))range(0, 5)[0, 1, 2, 3, 4]

key=lambda k: deta_f[k]
  • 这是一个 排序的关键函数
  • 它告诉 Python:按照 deta_f[k] 的值来排序这些索引,而不是直接用索引本身。

也就是说,虽然我们是在对 [0, 1, 2, 3, 4] 排序,但每个元素 k 的“权重”是 deta_f[k]


reverse=True
  • 表示按 降序排列(从大到小)。
  • 如果你去掉这个参数或设为 False,就是升序排列。

🧠 举个例子

假设:

deta_f = [10, 30, 20, 50, 40]

那么:

range(len(deta_f))[0, 1, 2, 3, 4]

现在我们对 [0, 1, 2, 3, 4] 按照 deta_f[k] 的值排序(降序):

索引 kdeta_f[k]
010
130
220
350
440

排序后(从大到小):

  • 最大的 deta_f[k]50(对应索引 3
  • 第二大是 40(索引 4
  • 第三大是 30(索引 1
  • 第四大是 20(索引 2
  • 最小是 10(索引 0

所以最终结果是:

sorted_id = [3, 4, 1, 2, 0]

🎯 应用场景(为什么这样写?)

这段代码常用于 ALNS(自适应大邻域搜索算法) 或其他启发式算法中:

  • deta_f[k] 表示移除第 k 个任务后目标函数的变化(损失);
  • 值越大,说明这个任务对解的质量影响越大;
  • 所以你想优先移除那些“影响最大”的任务;
  • sorted_id[:d] 就是你要随机破坏阶段移除的任务索引。

✅ 总结

内容说明
目的根据 deta_f 中值的大小,对其索引进行排序
结果sorted_id 是一个索引列表,按 deta_f 值从大到小排列
应用常用于 ALNS 中选择“最值得破坏”的任务
示例deta_f = [10, 30, 20, 50, 40]sorted_id = [3, 4, 1, 2, 0]

👇

相关文章:

  • C++核心编程--1 内存分区模型
  • python打卡day26
  • 如何在线免费压缩PDF文档?
  • 【MySQL】多表连接查询
  • 各个历史版本mysql/tomcat/Redis/Jdk/Apache/gitlab下载地址
  • 2024年9月电子学会等级考试五级第三题——整数分解
  • 【蓝桥杯省赛真题49】python偶数 第十五届蓝桥杯青少组Python编程省赛真题解析
  • zynq嵌入式linux启动默认设置
  • 钉钉数据与金蝶云星空的无缝集成解决方案
  • 嵌入式开发学习日志(数据结构--双链表)Day21
  • C++ QT图片查看器
  • 掘金中亚货代蓝海,易境通货代系统解锁数字化制胜密码!
  • Python实战案例:打造趣味猜拳小游戏
  • 山东大学计算机图形学期末复习整理5——CG10上
  • 司法系统之外的第三方平台未经许可披露企业涉诉信息是否构成侵权
  • CodeBuddy编程新范式
  • 动态规划-状态压缩DP
  • Java并发编程:synchronized机制
  • vue2 根据不同路由url设置不同的网页背景颜色
  • android display 笔记(十四)VAU 和GSP 分别代表什么
  • 网易有道一季度净利润同比增长247%:有能力在今年实现更强劲的利润增长
  • 刘国中将出席第78届世界卫生大会并顺访瑞士、访问白俄罗斯
  • 昔日千亿房企祥生集团约2.03亿元债权被拍卖,起拍价8000万元
  • 老字号“逆生长”,上海制造的出海“蜜”钥
  • 自强!助残!全国200个集体和260名个人受到表彰
  • 云南德宏州盈江县发生4.5级地震,震源深度10千米