鱼C论坛

 找回密码
 立即注册
查看: 2608|回复: 4

[已解决]关于数组复制的问题

[复制链接]
发表于 2020-3-12 23:02:28 | 显示全部楼层 |阅读模式
10鱼币
本帖最后由 我是一个椭圆 于 2020-3-12 23:04 编辑
  1. def trans(lis):
  2.     wid=len(lis[0])
  3.     hei=len(lis)
  4.     for i in range(hei):
  5.         for j in range(i):
  6.             lis[j][i],lis[i][j]=lis[i][j],lis[j][i]
  7.     return lis


  8. #输入部分,输入2*2矩阵并保存到dt中
  9. m,n=map(int,input().split())  #提前申明输入数组的大小

  10. dt=[]
  11. for i in range(m):
  12.     temp=list(map(int,input().split()))
  13.     dt.append(temp)



  14. print(dt)  #调用函数前打印一次dt

  15. temp=dt.copy()  #复制一个dt
  16. lis_trans=trans(temp)    #把temp矩阵翻折


  17. print(dt)  #调用函数后打印一次dt
复制代码


上图中dt并没有被改变,而且我也是用深复制,为什么调用函数后dt也变了,结果如图:

最佳答案
2020-3-12 23:02:29
深拷贝和浅拷贝的问题。
可以看一下我之前写的一个总结的帖子:python细节之2、变量名与标签 变量的赋值与修改
WWHNO_1E%YBZ2)JSA(7`_ED.png

最佳答案

查看完整内容

深拷贝和浅拷贝的问题。 可以看一下我之前写的一个总结的帖子:python细节之2、变量名与标签 变量的赋值与修改
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-12 23:02:29 | 显示全部楼层    本楼为最佳答案   
深拷贝和浅拷贝的问题。
可以看一下我之前写的一个总结的帖子:python细节之2、变量名与标签 变量的赋值与修改
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-3-12 23:03:39 | 显示全部楼层
输入:
2 2
1 2
3 4

输出:
[[1,2],[3,4]]
[[1,3],[2,4]]
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-3-12 23:08:38 | 显示全部楼层
已解决,使用copy.deepcopy()即可
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-13 09:18:20 | 显示全部楼层
深拷贝是deepcopy模块吧,你这是浅拷贝
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-14 08:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表