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

如何用多字典对应值替换列表元素的值以计算机械功耗?

实现方法

你可以通过列表推导式快速完成替换,直接遍历list_1中的每个元素,分别从对应的字典中取出对应值即可,代码简洁高效:

核心代码

# 基于你已有的list_1和字典,生成list_2
list_2 = [[dict_a[a], dict_b[b], dict_c[c]] for a, b, c in list_1]

完整可运行示例

把这段代码和你原有的代码整合后,完整流程如下:

from itertools import product  # 补充原代码缺失的导入

a = range(2,10)
b = range(12)
c = range(13)

list_1 = []
list_1 = [list(i) for i in product(a,b,c)]
list_1 = [item for item in list_1 if not (item[1] > item[0] or (item[1] and item[2] > 0) or (item[0] + item[2] > 10))]

# 定义功耗字典
dict_a = {2:25, 3:30, 4:35, 5:40, 6:45, 7:50, 8:55, 9:60}
dict_b = {0:15, 1:25, 2:35, 3:40, 4:45, 5:50, 6:55, 7:60, 8:75, 9:80, 10:85, 11:90}
dict_c = {0:15, 1:25, 2:35, 3:40, 4:45, 5:50, 6:60, 7:70, 8:75, 9:80, 10:95, 11:100, 12:110}

# 生成替换后的list_2
list_2 = [[dict_a[a_val], dict_b[b_val], dict_c[c_val]] for a_val, b_val, c_val in list_1]

# 打印前5个元素验证结果
print(list_2[:5])

容错优化(可选)

如果担心list_1中出现字典未覆盖的异常值,可以用dict.get()方法避免报错,同时自定义默认值(示例中设为0,可按需调整):

list_2 = [[dict_a.get(a_val, 0), dict_b.get(b_val, 0), dict_c.get(c_val, 0)] for a_val, b_val, c_val in list_1]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 12:45:26