老男孩_Day6

代码块

运行的一个单元就叫代码块

所有的文件都基于代码块运行

程序在文件里写  运行程序就要运行文件

一个文件就是一个代码块

交互命令(cmd窗口)中一行就是一个代码块

id:内存地址 print之后是一个虚拟的id地址

 ==  和  is

==    判断两个对象的值是否相同 在cmd里

lst1 = [1,2,3]

lst2=  [1,2,3]

lst1 == lst2   true 内容是相同的

lst1 is lst2    False   是两个不同的数据

is   身份运算  判断两个对象的内存地址是否相同

代码块的驻留 缓存机制

目的  都是提高性能 节省性能空间

在python中 默认会把数字 字符串 布尔值进行缓存 

好处: 不用重复创建字符串 节省性能空间

针对对象:  int  str  bool  空tuple

int范围  任意数字

str范围 几乎所有str 如果str×数字以后字符超过20  False

数据类型的相互转化  补充:

int bool str 三者可以互相转化

bool  可以与所有的数据类型进行转换

         所有为空的数据类型转为bool都为False

         0 '' [] () None    都为False

str转list   用split分割

list转str     用join 前提是list里内容全部是False

str转tuple   partition

tuple转str  用join  之后还可以转化成列表

list转tuple   谁转化谁  就把谁包起来

fromkeys:

dic = dict.fromkeys([1,2,3],'太白')        "太白"   id地址相同

print(dic)

dic = {1:'太白',2:'太白',3:'太白'}

如果tuple中只有单个元素且没有逗号   则类型是元素本身的类型     

如果value是一个可变的数据类型 那么在内存中key占用的是一个地址   后来的值代替先来的值

集合 set

其实就是一种特殊的字典  所有的key对应的value都是None   留下的所有的key就是集合

 创建空集合的唯一办法  调用set函数

s = set()

创建带元素的集合

s = {1,2,3}

从可迭代对象中创建集合 (list   str   tuple   dict)

s = set(1,2,3)

增删改 (集合是无序的 不能使用查的操作)

 add  如果元素存在 不做任何动作

 pop 依次从集合中随即删除一个元素 如果集合为空 报错

     dsicard  从集合中删除指定元素  如果不存在 什么都不做

     remove   从集合中删除指定元素  如果不存在就报错

     clear  请空集合

集合常用四大操作

并集       |

交集      &

差集      -

对称差   ^

 update  用二者的并集更新当前集合

difference_update    用二者的差集更新当前集合

intersection_update     用二者的交集更新当前集合

symmtric_difference_update     用二者的对称差 更新当前集合

判断功能

isdisjiont   判断两个集合是否没有交集

issubset    判断当前集合是否是后者的子集

issuperset    判断后者是否是当前集合的子集

集合的使用场景

1.判断一个元素是否在指定的范围之内

2.方便数学上的集合操作

3.对序列数据类型中的重复元素进行去除(去重):

lst = [1,2,3,4,4,4,4,4,5,5,5,6,6,7,7,7,8,5]

s = set(lst)             转换成集合 直接去重

lst = list(s)             去重完毕后重新转化为列表

猜你喜欢

转载自www.cnblogs.com/LL97155472/p/10493517.html
今日推荐