我认为两者是相同的.
nums = [1, 2, 0]
nums[nums[0]], nums[0] = nums[0], nums[nums[0]]
print nums # [2, 1, 0]
nums = [1, 2, 0]
nums[0], nums[nums[0]] = nums[nums[0]], nums[0]
print nums # [2, 2, 1]
Run Code Online (Sandbox Code Playgroud)
但结果却不同.
为什么结果不同?(为什么会产生第二个?)
import numpy as np
W = np.array([0,1,2])
W1 = W
W1 += np.array([2,3,4])
print W
W = np.array([0,1,2])
W1 = W
W1 = W1 + np.array([2,3,4])
print W
Run Code Online (Sandbox Code Playgroud)
上面的代码会发生变异W,但较低的代码不会发生变异W.为什么?