Python 如何以个人方式评估列表中的数字?

Python 如何以个人方式评估列表中的数字?,python,list,math,logging,Python,List,Math,Logging,例如,我有一个数字列表: du = 0.001 u = [0] for i in range(1, 500): u.append(round(u[i - 1] + du, 3)) n_strain = [0] for i in range(1, 3): n_strain.append((400 / 0.002) * u[i]) for i in range(4, 500): n_strain.append(400) 我想定义另一个函数X,作为n\u应变列表中值的ln 为

例如,我有一个数字列表:

du = 0.001
u = [0]
for i in range(1, 500):
    u.append(round(u[i - 1] + du, 3))
n_strain = [0]
for i in range(1, 3):
    n_strain.append((400 / 0.002) * u[i])
for i in range(4, 500):
    n_strain.append(400)
我想定义另一个函数X,作为n\u应变列表中值的ln 为此,我做了math.log(),但它只计算单个值

X=[n_应变中j的数学日志(j)[i]范围(500)中i的数学日志(j)]


不行,我试过了。这可以应用于其他示例,但我不知道如何操作。

您刚刚犯了一个小错误。这里有两种方法,你可以使用

X = []
for st in n_strain:
    val = math.log(st)
    X.append(val)
或者如果你想通过列表理解

X = [math.log(st) for st in n_strain]

我终于知道怎么做了。首先,我在数学上过于复杂了,就是一个列表,所以显然用numpy做它更好,在有了一个简单的列表之后,我所要做的就是使用np.log,就这样。这就是代码:

du = 0.001

u = [0]
for i in range(1, 501):
    u.append(round(u[i - 1] + du, 3))

n_strain = [0]
for i in range(1, 3):
    n_strain.append((400 / 0.002) * u[i])
for i in range(3, 501):
    n_strain.append(400)

X = np.array(n_strain)
z = [1]
for i in range(1, 501):
    z.append(1)
Z = np.array(z)
Y = Z + X

t_strain = np.log10(Y)

嗯,我现在两个都试过了,但是它给了我“ValueError:math domain error”错误