为什么列表没有在for循环的每次迭代中追加?

时间:2019-08-21 14:10:28

标签: arrays python-3.x

X_next在每次迭代中都得到更新,但是尽管我在每次迭代中都进行了XList.append(X_next),但在 last 迭代中仅计算出了X_next在每次迭代时附加。您可以在每次迭代X_nextXList循环之后for打印它们的过程中看到它们。

代码:

import pylab as pl

def acc(x):
    return -1 - x

X_prev = pl.array([1, 0])
X_next = pl.array([0., 0])
dt = 0.1

XList =[]

for i in range(0, 10):
    x1 = X_prev[0] + X_prev[1]*dt/2
    X_next[1] = X_prev[1] + acc(x1)*dt
    X_next[0] = x1 + X_next[1]*dt/2
    print(X_next)
    XList.append(X_next)
    X_prev = X_next

print(XList)

结果:

[ 0.99 -0.2 ]
[ 0.9601 -0.398 ]
[ 0.910599 -0.59202 ]
[ 0.84199201 -0.7801198 ]
[ 0.7549651 -0.9604184]
[ 0.65038854 -1.13111282]
[ 0.52930809 -1.29049611]
[ 0.39293456 -1.43697444]
[ 0.24263169 -1.56908302]
[ 0.0799025  -1.68550078]
[array([ 0.0799025 , -1.68550078]), array([ 0.0799025 , -1.68550078]), array([ 0.0799025 , -1.68550078]), array([ 0.0799025 , -1.68550078]), array([ 0.0799025 , -1.68550078]), array([ 0.0799025 , -1.68550078]), array([ 0.0799025 , -1.68550078]), array([ 0.0799025 , -1.68550078]), array([ 0.0799025 , -1.68550078]), array([ 0.0799025 , -1.68550078])]

问题:为什么会这样以及如何解决呢?

0 个答案:

没有答案