鱼C论坛

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

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

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


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

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



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

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


print(dt)  #调用函数后打印一次dt

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

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

最佳答案

查看完整内容

深拷贝和浅拷贝的问题。 可以看一下我之前写的一个总结的帖子:python细节之2、变量名与标签 变量的赋值与修改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

使用道具 举报

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

输出:
[[1,2],[3,4]]
[[1,3],[2,4]]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-3-12 23:08:38 | 显示全部楼层
已解决,使用copy.deepcopy()即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-13 09:18:20 | 显示全部楼层
深拷贝是deepcopy模块吧,你这是浅拷贝
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 18:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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