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()

猜你喜欢

转载自www.cnblogs.com/hql1117/p/11005542.html