如何仅使用Python原生库获取含最小值对应文件名的元组列表
实现方案
核心调整逻辑
- 原代码逐维度提取最小值时,仅截取了距离数值,丢弃了对应的文件名关联信息
- 调整方式:构造候选值时同步绑定文件名,通过
min的key参数指定仅以维度数值作为比较依据,直接返回符合格式要求的(文件名, 维度最小值)元组,全程仅使用Python原生库
调整后代码
import itertools # 与示例数据维度数匹配 K = 10 arrayFiles = [] for subset in itertools.combinations(distances, 2): dim_results = [] for k in range(K): # 构造维度候选:(文件名, 对应维度数值) candidates = [(file_name, dist[k]) for file_name, dist in subset] # 仅按维度数值比较大小,直接返回绑定文件名的最小值结果 min_item = min(candidates, key=lambda x: x[1]) dim_results.append(min_item) arrayFiles.append(dim_results)
匹配验证
针对示例数据中第一个二元组合(highway_bost174 与 ibis_142 配对),代码输出与给定的示例结构完全一致:
- 第0维:两值为
0.0、8.708170812,最小值对应("highway_bost174", 0.0) - 第1维:两值为
8.708170812、0.0,最小值对应("ibis_142", 0.0) - 第2维:两值为
4.088197921、10.518235207,最小值对应("highway_bost174", 4.088197921) - 后续维度计算结果完全匹配示例给出的逐维度取值,最终输出为嵌套列表结构,每个子元素均为绑定了对应文件名的维度最小值元组
内容的提问来源于stack exchange,提问作者lucasbbs
相关产品推荐
相关产品推荐

