python学习笔记--3深浅复制,集合字典,运算符

## ①深浅复制

import copy

li=[1,2,3]

li1=li #赋值,id与li相同,同一储存空间

li2=copy.copy(li) #浅复制,id与li不同,相当于复制了外面一层开辟一个不同储存空间

内层列表还是指向原地址

li3=copy.deepcopy(li) #深复制,id与li不同,完完全全复制一份并开辟一个新空间

※#深浅复制的区别(在于嵌套列表)

li=[[1,2],3]

li1=copy.copy(li)

li2=copy.deepcopy(li)

>>id(li[0])=id(li2[0])≠id(li3[0])

#bytes二进制类型

'好的'.encode()

b'iuoy'#皆是转二进制的方法

## ②集合与字典(可变序列),以{}表示

  #集合(set)  一个无序,不重复的储存空间,储存单个元素,内不可储存列表

  #字典(dict) 一个有序,key值不重复的,储存键值对空间

#集合定义方法

set()类型转换

{'12','asd'}

#三种运算

交 & 并 | 差 -(前集减去交集)

#集合的增删减查

s.add()

s.pop()-->随机删除

s.remove(...)-->指定删除...

s.update()-->分为单个元素添加

s.isdisjoint(a)-->判断s与a没有交集#无-->True

s.issubset(a)-->判断s是否是a的子集,s包含于a

s.issuperset(a)-->判断s是否是a的富集,s包含a

#字典定义方法(key:value)key的命名不可重复

di={'name':'wang','age':00}

di=dict(name='wang','age'=00)

#字典通过key来查询

  eg:di['name'] >>'wang'

di.get('name') >>'wang'

di.keys()返回所有key值

di.values()返回所有value值

di.items()返回所有

di.setdefault() -->有则返回,无则添加

  eg:di.setdefault('name')>>'wang'

      di.setdefault('name1',1)>>di>>{'name':'wang','age':00,'name1':1}

改,增

di['a']=2 -->有该键就改,无则添加

di.update()-->有则改,无则添

#创建一个新的字典

di_1=dict.fromkeys([key,key1],1)>>{'key':1,'key1':1}

di.pop('name') >>{'age':00}

di.popitem() -->从右到左按序删除

## ③逻辑运算

type(a)-->a为什么序列

isinstance(a,b)-->a是否为b类序列

#比较运算符

== 恒等于,!= 不等于

>= 大于等于,<= 小于等于

判断语1 and 判断语2

判断语1 or 判断语2

not 判断语 对返回False 错返回True

运算优先级:从上到下依次降低

幂运算符:**

一元运算符:+-

算术运算符:*/%

比较运算符:==,!=,>=,<=,>,<

赋值运算符:=,a+=1(a=a+1),/=,-=,*=,%=,//=,**=

身份运算符:is,is not(是一个对象,不是一个对象)#用于比较两对像的储存单元是否相同

成员运算符:in,not in(属于,不属于)#元素在指定序列中则返回True,反之返回False

逻辑运算符:not>and>or

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容