我正在尝试修改列表,因为我的修改有点棘手,我的列表很大,我使用以下代码获取了我的列表的一部分
tempList=origList[0:10]
for item in tempList:
item[-1].insert(0 , item[1])
del item[1]
Run Code Online (Sandbox Code Playgroud)
我这样认为对列表的所有修改都会影响tempList对象而不是origList对象.
好吧,一旦我的代码正确并在原始列表中运行它,前十个项目(索引0-9)受到我测试上面打印的代码的操作的影响.
所以我用Google搜索了一下,我找到了一些参考文献,说采取切片复制列表并创建一个新的.我还找到了帮助我找到项目ID的代码,所以我从头开始创建了我的origList,获得了前十项的ID.我再次对列表进行切片,发现切片中的id与origList的前十项中的id匹配.
我发现了更多的笔记,建议使用更复杂的方式来复制列表
tempList=list(origList([0:10])
Run Code Online (Sandbox Code Playgroud)
我试过了,我仍然发现tempList中的id与origList中的id匹配.
请不要建议更好的方法来进行编码 - 我将在列表中了解如何在我了解复制如何工作后自己理解
根据Kai的回答,正确的方法是:
import copy
tempList=copy.deepcopy(origList[0:10])
id(origList[0])
>>>>42980096
id(tempList[0])
>>>>42714136
Run Code Online (Sandbox Code Playgroud)
奇迹般有效