python的列表清空,实际的普通变量的操作区别倒是不怎么大,但是如果通过列表来达到传参的目的的话,不去弄懂python的列表清空的实际原理,就真的吃大亏了
这里做个记录,因为本人在工作的实际应用中就吃了大亏了,一直使用list列表传参使用,然后用list.clear()清空列表的方式,最后的结果却不是自己想要的!
直接看例子吧
1、使用list列表的原始属性clear()清空操作和初始化操作清空的普通变量对比
可以看到,两者在正常使用中是没有区别的,都能达到清空列表的目的
再看下通过列表传参的结果!
下面是实际工作中数据处理部分用到的demo示例:
2、通过传参的两者对比
clear()方式清空列表进行传参
输出为:
原始初始化[]方式进行传参:
输出为:
这里的程序都是一样的,唯一的区别在 clear() 清空和 [] 清空操作不同,而结果却是两个截然不同的,显然使用 [] 是我们需要的结果!
总结
这里造成这样的原因在于他们在底层的操作不一样导致的,
- list中的clear() 表示清空原有地址内容,而地址却不发生改变,也就是在原地址上进行内容的清空操作,输出结果就把原始内容给覆盖了!
- 而list = [] 则表示改变原有的地址,地址指向了新的位置,自然内容就不会被覆盖了!
喜欢点个赞呐!
欢迎关注公号<木木夕的算法笔记> 来找我玩吧,mua~
公众号会时不时更新有趣的图像算法哦!!!