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

Python多列表映射问题:根据J2获取A1对应元素

问题分析

你的代码逻辑错误在于直接将J2和A1按索引位置配对,而非基于J1与A1的对应关系匹配J2中的元素。zip(J2, A1)会把J2的第i个元素和A1的第i个元素绑定,因此只能取到A1的前两个元素,而非J1中与J2元素对应的A1值。

解决方案

方法一:字典映射(推荐,查询效率高)

如果J1中的元素是唯一的,先建立J1到A1的映射字典,再遍历J2获取对应值:

J1 = [1, 7, 9, 11]
A1 = [2.1, 6.9, 7.3, 5.4]
J2 = [1, 9]

# 构建J1与A1的映射关系
j_a_map = dict(zip(J1, A1))
# 根据J2元素提取对应A1的值
A2 = [j_a_map[j] for j in J2]

print(A2)  # 输出:[2.1, 7.3]

方法二:列表推导式(适配J1含重复元素的场景)

如果J1存在重复元素,需要保留所有匹配项,可以用列表推导式筛选:

J1 = [1, 7, 9, 11]
A1 = [2.1, 6.9, 7.3, 5.4]
J2 = [1, 9]

A2 = [a for j, a in zip(J1, A1) if j in J2]

print(A2)  # 输出:[2.1, 7.3]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 18:32:22