python高手求教,两个List怎么只改变一个List中元素的值不引起另一个List的变化

如有List1=[[1,[2,3,4],[2,[4,5,6]]],实现功能如下,List2初始化的值为List1,但后续List1中元素的改变不能引起List2中元素的改... 如有List1=[[1,[2,3,4],[2,[4,5,6]]],实现功能如下,List2初始化的值为List1,但后续List1中元素的改变不能引起List2中元素的改变,有没有简单的方法 展开
 我来答
albumin
推荐于2017-12-16 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2389万
展开全部
import copy
List2=copy.deepcopy(List1)

这样赋值,List2初始值和List1一样,因为是深度复制List1中的元素,所有深层元素都引用的是不同的对象,List1的任何改变不会影响List2

追问

还是这样啊,还是谢谢大侠

永伴他梁
2019-07-19 · TA获得超过9981个赞
知道小有建树答主
回答量:4194
采纳率:92%
帮助的人:111万
展开全部
使用List方法的removeAll时,当List里面装的是对象时,这个方法会失效。因为没有重写equals方法和
hasCode()方法。因为调removeAll()方法。如果List里面存储的是对象,会调用对象的equals方法和hasCode方法
因此要重新写,没有重写的对象比较是失效的。第一次遇到要比较对象是否相等。主要是对象的属性值是否相等。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小聚会159
2017-12-26
知道答主
回答量:1
采纳率:0%
帮助的人:919
展开全部
可以用List2=List1[:]切片不改变
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式