【学习笔记】python字典、函数和闭包
小整数对象池 在终端编译时,python中存在一个范围为[-5,256]的小整数对象池,这些整数对象是提前建立好的,不会被垃圾回收 所以,将同一个小整数赋值给不同变量,这些变量指向的内存地址都是一样的 例: >> > age = 8 >> > other_age = 8 >> > print ( age is other_age ) # True 而大整数不存在对象池,将同一个大整数赋值给不同变量,这些变量指向的内存地址是不一样的 例: >> > money = 2000000 >> > salary = 2000000 >> > print ( money is salary ) # False 这个时候,如果直接打开一个文本编辑器去尝试,你会发现,咦,怎么print(money is salary)打印出来的值为True啊,不是应该是False吗? 这是因为在文本编辑器编译时,python解析器会逐行编译,当发现两个变量引用的同一个整数值为一样,则会将这些变量指向同一个内存地址,最后编译完成后,再统一回收,而我们上述代码,都是在终端下执行的,终端是每次执行一次,执行一次就创建一次内存地址,所以打印出来的值为False 对称差集 list1 = [ 5 , 1 , 2 , 9 , 0 , 3 ] list2 = [ 7 , 2 , 5 , 7 , 9 ] set1 = set (