python基础入门之dict方法总结
本文最后更新于:December 21, 2020 am
1. 为什么使用dict?
A. 优点
- 查找速度快
- 节省空间
- key不可以重复,且不可变
- 数据无序排放
B. 特点
- 任何不可变对象都可用作字典的键,如字符串、数字、元组等
- 包含可变对象的列表、字典和元组不能用作键
- 引用不存在的键会引发KeyError异常
- value可以是字符,数字,列表,元组,字典
2. dict的初始化
| dict {} dict={key:value} dict2 = dict(x=1,y=2,z=3) Dict1=dict2 Dict1=dict2.copy() Dict=dict.fromkeys(seq,val=None) dict([container])
|
3. 基本操作(增,删,查,改)
A. 增加
| dict[key]=value dict.update(dict2) result = dict(dict1,**dict2) dict.setdefault(key,default=None)
|
B. 删除
| del d[key] d.clear() dict.popc(key, [default]) dict.popitem()
|
C. 查询
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| key in dict a=dict[key] dict.get(key,[default]) len(dict) dict.cmp(dict1,dict2) dict.items() dict.keys() dict.values() dict.iter() dict.iteritems() d1 = { 'x':1,'y':2,'z':3 } //i1 = d1.iteritems() //i1.next() >>('y', 2)使用next方式遍历每一个元素 dict.iterkeys() dict.itervalues() dict.viewvalues() d1.viewvalues() //dict_values([2, 1, 3]) dict.viewitems() d1.viewitems() //dict_items([('y', 2), ('x', 1), ('z', 3)]) dict.viewkeys() d1.viewkeys() //dict_keys(['y', 'x', 'z'])
|
4. 旋转构造
| zip返回元组组成的列表 zip('xyz','123') zip('xyzm','123') zip('xyz','123','qer') dict(zip('xyz','123')) 格式化输出字典 import jsonprint json.dumps(d,indent=2)
|
5. 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)
|
6. defaultdict
| from collections import defaultdict d=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) 初始化为0 d=defaultdict(int) 初始值为int()的初始值0 d=defaultdict(list) 初始值为list()的初始值[] d=defaultdict(dict) 初始值为dict()的初始值{}
|