python列表 list 清空操作之--- [] 和 clear()区别

python的列表清空,实际的普通变量的操作区别倒是不怎么大,但是如果通过列表来达到传参的目的的话,不去弄懂python的列表清空的实际原理,就真的吃大亏了

这里做个记录,因为本人在工作的实际应用中就吃了大亏了,一直使用list列表传参使用,然后用list.clear()清空列表的方式,最后的结果却不是自己想要的!

直接看例子吧

1、使用list列表的原始属性clear()清空操作和初始化操作清空的普通变量对比

在这里插入图片描述
可以看到,两者在正常使用中是没有区别的,都能达到清空列表的目的

再看下通过列表传参的结果!

下面是实际工作中数据处理部分用到的demo示例:

2、通过传参的两者对比

clear()方式清空列表进行传参
在这里插入图片描述
输出为:
在这里插入图片描述
原始初始化[]方式进行传参:
在这里插入图片描述
输出为:
在这里插入图片描述

这里的程序都是一样的,唯一的区别在 clear() 清空和 [] 清空操作不同,而结果却是两个截然不同的,显然使用 [] 是我们需要的结果!

总结

这里造成这样的原因在于他们在底层的操作不一样导致的,

  • list中的clear() 表示清空原有地址内容,而地址却不发生改变,也就是在原地址上进行内容的清空操作,输出结果就把原始内容给覆盖了!
  • 而list = [] 则表示改变原有的地址,地址指向了新的位置,自然内容就不会被覆盖了!

喜欢点个赞呐!
欢迎关注公号<木木夕的算法笔记> 来找我玩吧,mua~
公众号会时不时更新有趣的图像算法哦!!!

猜你喜欢

转载自blog.csdn.net/ganbelieve/article/details/106712772