Python 3.5及以上版本中:
x = np.zeros((2,3))
for x_e in x:
x_e += 123
这个操作返回一个所有元素都是 123
的 2x3
矩阵。而下面的操作则返回全是零的矩阵:
x = np.zeros((2,3))
for x_e in x:
x_e = 123
对我来说,这有点令人不安,因为x_e
是从x
中取出的元素,而且它并不完全感觉到x
正在被更新。
好的,我想这是一件事情,它被称为“原地”更新?(类似于原地算法?)
但是,让人感到不适的是,这在列表中不起作用:
x = [0,0,0]
for x_e in x:
x_e += 123
这将返回列表。
[0, 0, 0]
我希望有人能为我解释这里到底发生了什么。