python已创建列表副本,最后列表打印出来还是被改变了,怎么回事

Python029

python已创建列表副本,最后列表打印出来还是被改变了,怎么回事,第1张

你是创建list的副本,但你加入新list的时候用的是pop, pop表示的是原list返回最后一个对象,依次加入新的列表。打印出来新的list肯定就是原list的倒序了。

参考网页链接

我用代码来解释吧:

对副本遍历

对编组遍历:

你可以看到输出的结果是不同的,因为你要明白,书里面的代码就是在编组里面删除条目,但是如果直接对编组进行遍历的话,由于i是递增的,而你编组里面的元素是不断减少的,就不是一一对应的了,而对副本遍历的话,就不会有这样的错误,有问题可以继续问。

题主你好,

可以使用copy模块下的deepcopy方法进行列表的深拷贝, 代码及测试截图如下:

希望可以帮到题主, 欢迎追问.