加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python--dict方法总结

发布时间:2020-12-20 10:42:11 所属栏目:Python 来源:网络整理
导读:python dict 一、为什么使用dict? 1. 优点 2. 特点 二、dict的函数使用 1. 构造 2. 基本操作(增,删,查,改) 3. 旋转构造 4. dict持久化 5. defaultdict 一、为什么使用dict? 1. 优点 1:查找速度快 2:浪费空间 3:key不可以重复,且不可变 4:数据无序排放

python dict
一、为什么使用dict?
1. 优点
2. 特点
二、dict的函数使用
1. 构造
2. 基本操作(增,删,查,改)
3. 旋转构造
4. dict持久化
5. defaultdict
一、为什么使用dict?
1. 优点
1:查找速度快
2:浪费空间
3:key不可以重复,且不可变
4:数据无序排放

2. 特点
1.任何不可变对象都可用作字典的键,如字符串、数字、元组等
2.包含可变对象的列表、字典和元组不能用作键
3.引用不存在的键会引发KeyError异常
4.value可以是字符,数字,列表,元组,字典

二、dict的函数使用1. 构造dict {} #空字典dict={key:value} #经典定义dict2 = dict(x=1,y=2,z=3) #定义字典另一种方式 // {‘y‘: 2,‘x‘: 1,‘z‘: 3}Dict1=dict2 #浅复制,只是引用而已id(dict1)==id(dict2)Dict1=dict2.copy() #深复制,2个不同ID的字典id(dict1)!=id(dict2)Dict=dict.fromkeys(seq,val=None) #创建并返回一个新字典,以 seq 中的元素做该字典的键,val 做该字典中所有键对应的初始值(如果不提供此值,则默认为 None)dict([container]) #创 建 字 典 的 工 厂 函 数 。 如 果 提 供 了 容 器 类 (container) 就用其中的条目填充字典,否则就创建一个空字典。12345672. 基本操作(增,改)增加dict[key]=valuedict.update(dict2) #将字典 dict2 的键-值对添加到字典 dictresult = dict(dict1,**dict2) #将字典 dict2 的键-值对与字典dict1的键-值对合并为新的dictdict.setdefault(key,default=None) #和方法 set()相似,如果字典中不存在 key 键,由 dict[key]=default 为它赋值。1234删除del d[key] #删除指定keyd.clear() #清空字典dict.popc(key[,default]) #和方法 get()相似,如果字典中 key 键存在,删除并返回 dict[key],如果 key 键不存在,且没有给出 default 的值,引发 KeyError 异常。dict.popitem() #随机弹出(key,value)元组 1234查询key in dict #判断键(key)是否在字典中存在,是返回 True, 否则返回 Falsea=dict[key] #获取指定key的值,如果key不存在,会抛出异常dict.get(key,[default]) #如果有这个key,返回value,没有这个key,则赋予默认值len(dict) #返回映射的长度(键-值对的个数)dict.cmp(dict1,dict2) #比较字典,(优先级为元素个数、键大小、键值大小) #第一个大返回1,小返回-1,一样返回0 dict.items() #返回一个包含字典中(键,值)对元组的列表dict.keys() #返回一个包含字典中键的列表dict.values() #返回一个包含字典中所有值的列表dict.iter() #方法 iteritems(),iterkeys(),itervalues()与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表。dict.iteritems() #返回一个dict中(key,value)元组的迭代器对象d1 = { ‘x‘:1,‘y‘:2,‘z‘:3 } //i1 = d1.iteritems() //i1.next() >>(‘y‘,2)使用next方式遍历每一个元素dict.iterkeys() #返回dict中key的迭代器对象dict.itervalues() #返回dict中value的迭代器对象dict.viewvalues() #返回类似集合方式的字典(值组成)d1.viewvalues() //dict_values([2,1,3])dict.viewitems() #返回类似集合方式的字典(值组成)(key,value)元组组成d1.viewitems() //dict_items([(‘y‘,2),(‘x‘,1),(‘z‘,3)])dict.viewkeys() #返回类似集合方式的字典(键组成)d1.viewkeys() //dict_keys([‘y‘,‘x‘,‘z‘])12345678910111213141516171819修改d[key] = value13. 旋转构造zip返回元组组成的列表zip(‘xyz‘,‘123‘) #[(‘x‘,‘1‘),(‘y‘,‘2‘),‘3‘)]对应生成列表zip(‘xyzm‘,‘3‘)]多余项被舍弃zip(‘xyz‘,‘123‘,‘qer‘) #[(‘x‘,‘1‘,‘q‘),‘2‘,‘e‘),‘3‘,‘r‘)] dict(zip(‘xyz‘,‘123‘)) #{‘y‘: ‘2‘,‘x‘: ‘1‘,‘z‘: ‘3‘}构造字典格式化输出字典import jsonprint json.dumps(d,indent=2) #不同层级以2个空格缩进12345674. dict持久化先把字典转换成字符串,然后把字符串写入文件,读出来时再把字符串为字典写import json data = json.dumps(d)with open(f,‘wb‘) as f: f.write(data)读import json with open(f,‘wb‘) as f: data = f.read()d = json.loads(data)123456789105. defaultdictfrom collections import defaultdictd=defaultdict(内建函数)内建函数有:int(),long(),float(),complex(),str(),unicode(),basestring() ,list(),tuple() ,type() ,dict() ,bool() ,set(),frozenset() ,object() ,classmethod() staticmethod() ,super() ,property() ,file()功能:dict中value默认值为内建函数的默认值,且value的类型为内建函数的类型,如果是普通的dict,则对于不存在的key,其value是不存在的,访问会报错,但对于defaultdict,对于不存在的key,其value存在,为内建函数的默认值d=defaultdict(lambda:0) 初始化为0d=defaultdict(int) 初始值为int()的初始值0d=defaultdict(list) 初始值为list()的初始值[]d=defaultdict(dict) 初始值为dict()的初始值{}————————————————版权声明:本文为CSDN博主「今生唯尔」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_31813549/article/details/79090013

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读