testList = ["This","Is","A","Test"]dummyList = testListdummyList = dummyList + ["Hello"]
我期待更改testList的内容,因为dummyList引用testList,我们只是添加了一个新元素,但这没有发生.现在看下面的代码.
testList = ["This","Test"]dummyList = testListdummyList[0] = 'Hello'
在此代码中,testList中发生了更改.为什么对dummyList的更改会改变第二块代码中testList的内容而不是第一块?
解决方法 通过使用=运算符,您使testList指向与dummyList相同的内存地址,因此它们本质上是相同的对象.这可以通过以下方式验证:testList = ["This","Test"]dummyList = testList>>> testList is dummyListTrue
但是当你重新分配它时,它会创建一个新的列表,现在不指向同一个对象:
dummyList = dummyList + ['hello']>>> testList is dummyListFalse
但是,通过使用dummyList [0] =’Hello’进行更改,它只是对dummyList进行了更改,而dummyList仍指向与testList相同的内容.不同之处在于没有新的任务.
您可以创建一个副本以完全避免这种情况:
testList = ["This","Test"]dummyList = testList.copy()>>> testList is dummyListFalse总结
以上是内存溢出为你收集整理的python – 添加到列表与更改列表元素全部内容,希望文章能够帮你解决python – 添加到列表与更改列表元素所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)