Python-----风花雪月
6.1小数据池
小数据池就是Python中一种提高效率的方式,固定数据类型使用同一个内存地址.
小数据池支持的类型:str,int,bool
id 查看空间的内存地址,获取开辟空间的一种地址
小数据池数字支持范围:-5~256
代码块:一个文件,一个模块,一个函数,一个类,终端中每一行都一个代码块, 在python中是用字典的方式存储.
is 判断两个内存地址是否相同
== 判断等号两边的值是否相同
字符串:
1.字符串在做乘法的时候总长度不能超过20,进行驻留
2.自己定义的字符串 长度不限制 字符串必须(字母,数字.下划线)组成,进行驻留
3.特殊字符(中文除外)定义1个时候,进行驻留
4.字符串*1 其实就是赋值
如果is判断相同 == 一定相同
如果==判断相同 is 不一定相同
先执行代码块,不符合代码块才会执行小数据
代码块的规则:
数字: 全部驻留
字符串:
1.字符做乘法的时候总长度不能超过20
2.自定定义的都驻留
3.乘数为1的时候 就是赋值
4.python3.7 乘法的时候总长度不能超过4096
总结:
小数池 -- 支持: str,int,bool
小数据池数字: -5 ~ 256
小数据池字符串: 乘法时长度不能超过20
6.2集合
集合:set
集合就是一个没有值的字典,遵循:唯一,无序,元素要求可哈希(不可变)集合是无序的,可变的.
增加:s.update() 迭代添加.
s.add() 随机添加
删除:s.pop() 随机删除
s.remove() 通过元素删除
s.clear() 清空
del s 删除整个集合
修改: 删除,再加
查看:for循环
集合的作用天然去重,具有唯一性.
s1 = {1,2,3,4,5,6,7}
s2 = {3,4,5,6}
# print(s1 - s2) #差集
# print(s1 | s2) #并集 (合集)
# print(s1 & s2) #交集
# print(s1 ^ s2) #对称差集 -- 反交集
# print(s1 > s2) # 超集 -- 父集
# print(s1 < s2) # 子集
# 冻结集合(可变 转换成 不可变) -- 更不常用
# f_s = frozenset({1,2,3,4,5})
# # dic = {f_s:"1"}
# # print(dic)
6.3深浅拷贝
拷贝 - - copy 复制
赋值 - - 两个变量指向了一个列表内存地址.
赋值不是拷贝
浅拷贝:只拷贝第一层,会创建一个新的列表,新创建的列表中的元素和原列表的元素用的是同一个内存空间. (s.copy())
深拷贝:不可变的数据类型和原列表指向同一个空间,可变数据会创建一个新的空间.
import copy
copy.deepcopy()