Python实现列表元素按字典内对应因子列表逐项做除法运算
实现逻辑说明
列表A的元素按下标顺序,依次匹配字典fact_dic中键名为两位序号格式('01'/'02'/'03'...)的因子列表,每个A中的数值依次除以对应因子列表内的所有元素,生成对应的结果子列表。
可直接运行的代码
# 预定义的字典和数值列表 fact_dic = { '01': [0.5, 0.2], '02': [0.4, 0.2], '03': [0.45, 0.3] } A = [100, 200, 300] calc_result = [] for index, value in enumerate(A, start=1): # 序号转两位字符串作为字典键,匹配对应因子列表 match_key = f"{index:02d}" # 逐因子做除法,生成当前值对应的结果列表 sub_list = [int(value / factor) for factor in fact_dic[match_key]] calc_result.append(sub_list) # 拆分为独立变量,和示例命名保持一致 new_list1, new_list2, new_list3 = calc_result
结果验证
运行代码后输出结果和示例完全一致:
new_list1值为[50, 20]new_list2值为[80, 40]new_list3值为[666, 1000]
如果需要保留浮点精度,去掉列表推导式里的int()转换即可。
内容的提问来源于stack exchange,提问作者Debasis
相关产品推荐
相关产品推荐

