在Python中替换子列表中的值

3zwjbxry  于 2023-05-21  发布在  Python
关注(0)|答案(1)|浏览(113)

我正在写一个如下所示的循环,但是对于sigma的每个子列表元素,我想确保如果值小于threshold_sigma,它应该被替换为threshold_sigma。我给出了当前和预期的输出。

import numpy as np

km = [1, 2, 3, 4, 5]
CI = []
sigma0=0.021
R=8.314
Temp=295
K=1.5e3
sigma=[]
threshold_sigma=0.005

for t in range(0, 3):
    CI_t = []
    sigma_t=[]
    alpha_t=[]
    Pr_cap_t=[]
    for i in range(0, len(km)):
        CI1 = 0.001 * (1 - np.exp(-km[i] * t))
        CI_t.append(CI1)
        
        sigma1=sigma0-R*Temp*0.001*np.log(1+K*1.0*CI_t[i])     
        sigma_t.append(sigma1)
        
    CI.append(CI_t)
    sigma.append(sigma_t)   
print("sigma =",sigma)

当前输出为

sigma = [[0.021, 0.021, 0.021, 0.021, 0.021], [-1.6146492190972785, -2.0186136083750714, -2.1519399869949933, -2.199220054620485, -2.2163866261027207], [-2.0186136083750714, -2.199220054620485, -2.222671745347101, -2.225828428605512, -2.2262553272687082]]

预期输出为

sigma = [[0.021, 0.021, 0.021, 0.021, 0.021], [0.005, 0.005, 0.005, 0.005, 0.005], [0.005, 0.005, 0.005, 0.005, 0.005]]
cngwdvgl

cngwdvgl1#

您几乎可以在代码中将sigma_t.append(sigma1)替换为sigma_t.append(max(sigma1,threshold_sigma))

相关问题