【发布时间】:2017-08-10 22:57:15
【问题描述】:
在 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]
如果有人能告诉我这里到底发生了什么,我将不胜感激。
【问题讨论】:
-
@Divakar,感谢您的指点。但我相信他们没有回答关于整数不变性的第三点。另外,请相信我,当我在互联网上搜索答案时找不到它们。 :)
标签: python python-3.x numpy