如何从两个数组生成新数组:按值映射替换原数组元素
Python数组映射替换解决方案
你需要将list_a中的数值按固定对应关系替换为list_b中的值,核心是建立数值到目标值的映射,下面提供两种简洁的实现方式:
方法一:字典映射法
先创建一个映射字典,把需要替换的原数值和目标值一一对应,再遍历原数组生成新数组,扩展性更强(后续新增数值只需更新字典):
list_a = [20, 20, 20, 21, 21, 22, 20, 21, 23, 20, 23, 24] list_b = [120, 121, 122, 123, 124] # 建立原数值与目标值的映射关系 mapping = dict(zip([20, 21, 22, 23, 24], list_b)) # 遍历原数组完成替换 newList = [mapping[num] for num in list_a] print(newList) # 输出:[120, 120, 120, 121, 121, 122, 120, 121, 123, 120, 123, 124]
方法二:索引计算法
观察到原数值和list_b的索引有固定差值(原数值-20=对应索引),直接通过索引取值,代码更简洁:
list_a = [20, 20, 20, 21, 21, 22, 20, 21, 23, 20, 23, 24] list_b = [120, 121, 122, 123, 124] # 利用数值与索引的固定关系直接取值 newList = [list_b[num - 20] for num in list_a] print(newList) # 输出:[120, 120, 120, 121, 121, 122, 120, 121, 123, 120, 123, 124]
内容的提问来源于stack exchange,提问作者dAn_d
相关产品推荐
相关产品推荐

