Python中如何将sigma_t按t值分组为嵌套子列表输出?
解决嵌套列表生成问题
问题说明
现有代码将所有计算出的sigma1值直接添加到一维列表sigma_t中,但需要让每个t对应的计算值存入独立的子列表,形成嵌套列表结构。
原代码
import numpy as np sigma0=0.021 R=8.314 T=295 K=1.5e3 Cb=0.001 km=[1,2,3,4,5] threshold_sigma=0.005 sigma_t=[] alpha_t=[] for t in range(0,2): for i in range(0,len(km)): sigma1=sigma0-R*T*0.001*np.log(1+K*Cb*(1-np.exp(-km[i]*t))) if sigma1 < threshold_sigma: sigma1 = threshold_sigma sigma_t.append(sigma1) print(sigma_t)
当前输出
[0.021, 0.021, 0.021, 0.021, 0.021, 0.005, 0.005, 0.005, 0.005, 0.005]
期望输出
[[0.021, 0.021, 0.021, 0.021, 0.021], [0.005, 0.005, 0.005, 0.005, 0.005]]
修改方案
在外层t的循环中,每次创建一个临时子列表,将当前t对应的所有计算值存入该子列表,循环结束后再将子列表添加到sigma_t中:
import numpy as np sigma0=0.021 R=8.314 T=295 K=1.5e3 Cb=0.001 km=[1,2,3,4,5] threshold_sigma=0.005 sigma_t=[] alpha_t=[] for t in range(0,2): # 初始化当前t对应的子列表 current_sigma = [] for i in range(0,len(km)): sigma1=sigma0-R*T*0.001*np.log(1+K*Cb*(1-np.exp(-km[i]*t))) if sigma1 < threshold_sigma: sigma1 = threshold_sigma current_sigma.append(sigma1) # 将子列表添加到sigma_t sigma_t.append(current_sigma) print(sigma_t)
原理说明
原代码每次内层循环都直接将单个值追加到sigma_t,最终得到一维列表。修改后,每个t循环周期内先收集该t对应的所有结果到临时子列表,再将整个子列表作为元素追加到sigma_t,从而生成符合要求的嵌套列表结构。
内容的提问来源于stack exchange,提问作者KeplerNick123
相关产品推荐
相关产品推荐

