为了账号安全,请及时绑定邮箱和手机立即绑定

尽管使用 list.copy(),Python 还是改变了原始列表

尽管使用 list.copy(),Python 还是改变了原始列表

繁星点点滴滴 2022-12-20 15:14:21
所以我刚刚遇到了一些奇怪的事情。当我开始编程时,我在复制列表和更改方面遇到了问题,然后了解到我必须使用my_list.copy()才能获得实际副本。现在我只是偶然发现了同样的效果,尽管使用了list.copy().所以这是一个例子:ori = [['1', '2', '3'],['1', '2', '3'],['1', '2', '3'],['1', '2', '3']]copy = ori.copy()for i, item in enumerate(copy):    del copy[i][0]print('Original list: ', ori)print('Copy of list: ', copy)我期望的输出:Original list: [['1', '2', '3'],['1', '2', '3'],['1', '2', '3'],['1', '2', '3']]Copy of list: [['2', '3'], ['2', '3'], ['2', '3'], ['2', '3']]实际输出:Original list: [['2', '3'],['2', '3'],['2', '3'],['2', '3']]Copy of list: [['2', '3'], ['2', '3'], ['2', '3'], ['2', '3']]所以我想我的问题是:这是预期的行为吗?我是否需要使用copy.deepcopy()或是否有其他带有内置工具的解决方案?我在 PC 上使用 Python 3.8.1 我刚遇到这个“问题”。
查看完整描述

1 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

copy()方法返回列表的浅表副本。改用copy.deepcopy()



查看完整回答
反对 回复 2022-12-20
  • 1 回答
  • 0 关注
  • 80 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信