(代码块是防止我们频繁的开空间降低效率设计的,当我们定一个变量需要开辟空间的时候,它会先去检测我们定义的这个值在空间中有没有开辟,如果没有开辟就进行开辟,如果在内存中开辟过就使用同一个)
整形(int):
字符串(str):
布尔值:True False
小数据池,代码块同在的情况下先执行代码块
(python考虑到我们会经常定义一些值,需要开辟空间和销毁空间,它底层就维护了一个小数据池,这个小数据就是规定一个区间使用的是同一个内存地址
在py中默认先执行代码块;在终端中执行小数据池
集合是python中的数据类型之一,是无序的,可变的且唯一
集合就是一个没有值的字典
集合天然去重
面试题:用一行代码去重
lst = [1,223,1,1,2,31,231,22,12,3,14,12,3]print(list(set(lst))
定义一个空集合: set1 = set{}
定义一个空字典s = {}
集合的增:
集合名.add()
集合名.update() 迭代添加
集合的删:
集合名.remove() 通过元素删除
集合名.clear() 清空
集合名.pop() 随意删除(一般情况下是最小的)
集合的改:
先删后改
集合的查:
for 循环
以后尽量避免,但面试必问
赋值; = 将多个变量指向一个同一个内存地址就是赋值
浅拷贝
只拷贝第一层元素的地址,只有修改第一层的时候源数据不受影响,给可变的数据类型进行添加的时候源数据会受影响
? = 是 修改 .append 是添加
可变数据类型够修改和添加,不可变数据类型只能修改
(当拷贝完后,如果对第一层进行修改(就会改变其对应的地址)则就不会对前一个发生影响)
深拷贝
不可变数据类型内存地址共用,可变数据类型新开辟一个空间
import copy
b = copy.deepcopya(a)
深拷贝中可变数据类型新开辟一个空间的原因是防止原可变数据类型发生紊乱
原文:https://www.cnblogs.com/yuancw/p/11462238.html