【发布时间】:2012-12-23 08:43:38
【问题描述】:
我刚刚注意到 python 中的变量赋值有一些我没想到的行为。例如:
import numpy as np
A = np.zeros([1, 3])
B = A
for ind in range(A.shape[1]):
A[:, ind] = ind
B[:, ind] = 2 * ind
print 'A = ', A
print 'B = ', B
输出
A = [[ 0. 2. 4.]]
B = [[ 0. 2. 4.]]
在我期待的时候:
A = [[ 0. 1. 2.]]
B = [[ 0. 2. 4.]]
如果我将“B = A”替换为“B = np.zeros([1, 3])”,那么我做对了。 我无法在 Ipython 终端中重现意外结果。我在 SciTE 3.1.0 中使用 F5 键运行代码得到了该结果。我在 Win7 中使用 Python(x, y) 2.7.2.3 发行版。
【问题讨论】: