如果将list1保存到list2中,使用clear清除list1,list2也会被清除,但即使使用[]清除list2,你有遇到过这样的情况吗?
从现在开始,请不要告诉我list.clear()和list=[]的用法不同。我在使用Python 时遇到了一个陷阱。这本身并不是一个陷阱,只是你没有很好地理解它。在文章的最后,我们简要讨论了Python的内置类型。
1.列表是可变对象当然,列表、集合和字典都是可变对象。
编辑变量对象:属于其原始位置(原始内存地址)。 创建变量对象:创建一个新对象并编辑新的内存地址。 list1的内存地址保持不变。
创建新的list1和list2,内存地址不同
2。 List Clear() 清除list1 的原始内存地址。
3。列表中的[]是新的列表,原来的内存地址会一直存在。
以上三点你了解了吗?
当然,如果您对可变和不可变对象的本质有详细的了解,那么理解这些就很好了。
Python 内置类型
不可变对象:数字、字符串、元组、布尔值(编辑属于新对象)
相同的数据占用一块内存。例如:a=1;b=1;a和b具有相同的内存地址并且只有一个对象。没有创建新对象(没有分配新内存)。示例:a=1; a=2; 相当于创建一个新对象(打开新内存) 可变对象:列表、集合、字典(编辑是就地操作)
一个对象占用一部分内存如下:a=[1,2];b=[1,2];a和b内存地址不同,产生两个新对象(两个新块)。像a=[1,2]; a.append(3); 一样编辑对象a的内存地址不变,仍然是一个对象(内存扩展)。您可以单击Python函数1:函数传递变量和不可变对象。
版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。