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

如何基于元组次元素最小绝对差配对两个质心元组列表?

质心坐标配对实现方案

给定两个包含质心坐标元组的列表:

current_centroids = [(924, 849), (734, 974), (360, 778), (400, 710), (963, 1067), (839, 440), (899, 88)]
prior_centroids = [(1096, 837), (522, 763), (898, 960), (563, 694), (1790, 720), (1080, 75), (1780, 713)]

需求是将current_centroids中的每个元组,与prior_centroids里第二个元素绝对差最小的元组配对,生成形如[((924, 849), (1096, 837)), ...]的结果列表,要求用列表推导式实现,且不能使用zip(因为两个列表元素无对应关系,长度可能不同)。

实现代码

result = [
    (current, min(prior_centroids, key=lambda p: abs(current[1] - p[1])))
    for current in current_centroids
]

代码说明

  • 外层是遍历current_centroids的列表推导式,逐个取出每个current元组
  • 对每个current,用min()函数从prior_centroids中筛选符合条件的元组:
    • key=lambda p: abs(current[1] - p[1]) 指定比较规则:计算current第二个元素与prior元组第二个元素的绝对差,取差值最小的元组
  • 最终每个current元组和对应的最优prior元组组成二元组,形成结果列表

验证示例

比如current_centroids中的(924, 849),计算其第二个元素849与prior_centroids所有元组第二个元素的绝对差:

  • 837 → 12,763 → 86,960 → 111,694 → 155,720 → 129,75 → 774,713 → 136
    最小差值为12,对应prior_centroids中的(1096, 837),与需求示例一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 13:05:08