给定以下数组:
A= 11,0,9,2,7,我想要交换A和A3。
预期结果:a= 2,0,9,11,7。
有人能解释为什么第一个和第二个方法失败了吗?我怀疑这与内存引用有关。有什么想法吗?
第一种方法(失败)
A = [11, 0, 9, 2, 7]
print("Original:",A)
temp = A[0]
temp, A[3] = A[3], temp
print("First: ",A)第二种方法(失败)
A = [11, 0, 9, 2, 7]
temp = A[0]
A[3], temp = temp, A[3]
print("Second: ",A)第三种方法(有效)
A = [11, 0, 9, 2, 7]
A[0], A[3] = A[3], A[0]
print("Third: ",A)第四种方法(有效)
A = [11, 0, 9, 2, 7]
temp = A[0] # p = 11
A[0] = A[3]
A[3] = temp
print("Fourth: ",A)结果
原始:11,0,9,2,7
First (失败): 11、0、9、11、7
第二次(失败): 11、0、9、11、7
第三次(成功): 2,0,9,11,7
4(成功): 2,0,9,11,7
发布于 2022-12-01 17:23:53
因为在第1和第2段中,您要在temp和A3之间交换值,而不是用A来交换
就这么做
A =临时
就像你在第三节那样
"temp“是列表外的一个变量。
https://stackoverflow.com/questions/74645644
复制相似问题