请问造成下面代码运行结果差异的原因是什么呢?
我记得 C/C++ 好像也有这样的运行结果(记错勿喷),当时是简单判断下标相等避免了这个问题。
def swap(nums, a, b):
nums[a] = nums[a] ^ nums[b]
nums[b] = nums[a] ^ nums[b]
nums[a] = nums[a] ^ nums[b]
nums = [1, 2, 2]
a = 1
b = 1
swap(nums,a,b)
print(nums[a], nums[b])
nums = [1, 2, 2]
a = 1
b = 2
swap(nums,a,b)
print(nums[a], nums[b])
运行结果
0 0
2 2