python中对编组的副本进行修改对编组本身有什么影响吗?

2025-05-08 22:34:17
推荐回答(2个)
回答1:

我用代码来解释吧:

对副本遍历

对编组遍历:

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

回答2:

for循环中删除列表元素,如A=[1,2,3,4,5],删除指针对应的1后,2、3、4、5前移,而指针往后移一位,在[2,3,4,5]中,就只能删除3了,漏了2,这就是为什么不推荐这种方法的原因
建立一个副本,B=[1,2,3,4,5]

遍历副本中的元素以删除A中的元素,就是一个个的拿着副本里的元素去找列表中的对应元素,将其从列表中删除。因副本未改变,所以能做到删除所有元素。