import numpy as np
x = np.array([1,2,3])
xlist = []
Xlist = []
for i in range(1):
xlist.append(x**(i+1))
Xlist.append(xlist)
xlist.append(x**2)
Xlist.append(xlist)
Xlist
然而,输出是
[[array([1, 2, 3]), array([1, 4, 9])], [array([1, 2, 3]), array([1, 4, 9])]]
但是,我不知道为什么结果不是下面的表达式,我想得到下面的结果,如何实现呢?
[[array([1, 2, 3])], [array([1, 2, 3]), array([1, 4, 9])]]
答案 0 :(得分:0)
您需要首先创建列表的副本,然后append
sqaured array。
new_list = xlist+x**(i+1)
xlist.append(new_list)
您的问题正在发生,因为附加后np.array
作为参考传递,因此如果您在列表外更改它,则值也会在列表中更改。