首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中数组在一行中的交换元素[内存引用失败]

Python中数组在一行中的交换元素[内存引用失败]
EN

Stack Overflow用户
提问于 2022-12-01 17:08:25
回答 1查看 18关注 0票数 0

给定以下数组:

A= 11,0,9,2,7,我想要交换A和A3。

预期结果:a= 2,0,9,11,7。

有人能解释为什么第一个和第二个方法失败了吗?我怀疑这与内存引用有关。有什么想法吗?

第一种方法(失败)

代码语言:javascript
复制
A = [11, 0, 9, 2, 7]
print("Original:",A)    
temp = A[0]    
temp, A[3] = A[3], temp    
print("First:   ",A)

第二种方法(失败)

代码语言:javascript
复制
A = [11, 0, 9, 2, 7]
temp = A[0]
A[3], temp = temp, A[3]
print("Second:  ",A)

第三种方法(有效)

代码语言:javascript
复制
A = [11, 0, 9, 2, 7]
A[0], A[3] = A[3], A[0]
print("Third:   ",A)

第四种方法(有效)

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2022-12-01 17:23:53

因为在第1和第2段中,您要在temp和A3之间交换值,而不是用A来交换

就这么做

A =临时

就像你在第三节那样

"temp“是列表外的一个变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74645644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档