首页 > 其他 > 详细

py知识(每日更新) 6.11

时间:2019-06-11 18:06:58      阅读:117      评论:0      收藏:0      [点我收藏+]

什么是小数据池

小数据池是Python中一种提高效率的方式,固定数据类型使用同一个内存地址

小数据池----支持 str,int,bool

小数据池是干嘛的

a = 1
b = 1
#id 查看空间的内存地址 获取开辟控件的一种地址
id(a)== id(b)
#数字范围 -5~256

代码块:一个文件,一个模块,一个函数,一个类,终端中每一行都算一个代码块

在Python中是用字典的方式存储

is #判断两个内存地址是否相同
== #判断等号两边的值是否相同

如果 is判断为True 那么 == 一定为True

字符串:

? 1.字符串在做乘法的时候总长度不能超过20,进行驻留

? 2.自己定义的字符串 长度不限制 字符串必须由数字,字母,下划线组成,进行驻留

? 3.特殊字符(中文除外)定义1个时候,进行驻留

? 4.字符串*1 其实就是赋值

代码块:

? 数字:全部驻留

? 字符串:

? 1.字符串做乘法的时候总长度不能超过20

? 2.自己定义的都驻留

? 3.乘数为1 就是赋值

? 4.Python3.7中乘法长度改为不超过4096

总结:

? 小数据池数字:-5~256 !!!

? 小数据池字符串:乘法的时候总长度不能超过20 !!!

? 小数据池----支持 str,int,bool

#怎么自己驻留?
#使用Python内置的模块

from sys import intern
a = intern("@@@@@@" * 20)
b = intern("@@@@@@" * 20)
结果为True

集合

集合是什么

Python数据类型之一

set {1,2,3,4}

s = {1,2,3,4,"123",True,False,(1,2,3,4)}
print(s)>>>> {False, 1, 2, 3, 4, '123', (1, 2, 3, 4)}
#集合就是一个没有值的字典,遵循唯一,无序,元素要求可哈希(不可变)
#集合是可变的
#集合天然去重

集合怎么用

增:

s = {1,2,3,4,"123",True,False,(1,2,3,4)}
s.update("456")     #迭代添加
s.add("啊啊啊")     #添加

删:

s = {1,2,3,4,"123",True,False,(1,2,3,4)}
s.pop()         #删第一个
s.remove()      #指定删除
del s           #删除整个集合
s.clear         #清空

改:

#删了重新添加

查:

for i in xxx

其他操作

s1 = {1,2,3,4}
s2 = {3,4,5,6}
s1 - s2 = {1, 2} #差集
s1 | s2 = {1,2,3,4,5,6} #合集
s1 & s2 = {3,4}         #交集
s1 ^ s2 = {1, 2, 5, 6}  #反向交集&对称差集
s1 > s2 = False     #超集 ----父集
s1 < s2 = False     #子集
#冻结集合(可变 转换为 不可变) ----不常用
frozenset ({1,2,3,4,5})

集合在哪儿用

? 1.去重

print(list(set(li)))

深浅拷贝

拷贝 -- copy 复制了一份儿

赋值

l1 = [1,2,3,4[5,6,7]]
l2 = l1  #赋值

浅拷贝

l1 = [1,2,3,4[5,6,7]]
l2 = l1[:]      #浅拷贝
l2 = l1.copy()  #浅拷贝----只拷贝第一层元素
#浅拷贝会创建一个新的列表(容器),列表中的元素和原列表共用一个内存空间

深拷贝

import copy
li = [1,2,3,4,5,[6,7,8]]
l2 = copy.deepcopy
print(li)>>>>[1, 2, 3, 4, 5, [6, 7, 8]]
print(id(li))>>>>1420229662280
print(id(li[0]))>>>>1387364464
print(l2)>>>>[1, 2, 3, 4, 5, [6, 7, 8]]
print(id(l2))>>>>1420229663560
print(id(l2[0]))>>>>1387364464
#深拷贝 ---- 不可变的数据类型和原列表指向同一个内存空间
#           可变数据类型,会创建一个新的空间

深浅拷贝在哪用

? 1.不修改原数据的基础上进行操作

总结

赋值:多个变量指向同一个内存地址

浅拷贝:只拷贝第一层元素,可变元素不动指向原先位置

深拷贝:全部拷贝 ---- 不可变数据类型指向的是原数据的内存地址

? -----可变数据类型会创建一个新的空间

深浅拷贝的规律:

? 赋值: 两个变量使用的是同一个空间

? 浅拷贝:修改不可变数据类型,不变动,修改可变数据类型,变动

? 深拷贝:修改就不变动

py知识(每日更新) 6.11

原文:https://www.cnblogs.com/lyoko1996/p/11005040.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!