您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > python 字典相关操作
Python中的一种数据结构——字典(Dictionary)的使用方法总结。一、dictionary数据类型的结构是:{key1:value1,key2:value2,...},即键值对。字典的健必须是不可更改的类型,如字符串、数字、元祖等;而值则可以是任意的数据类型,而且同一个字典当中可以混用数据类型,如:?1d={'a':1,'b':[1,2,3],'c':('hello','world')}字典的key不可以重复。需要注意的一点是:字典是一个无序存储结构。二、新建字典新建一个空字典,例:d={}新建一个非空字典,例:d={'a':'hello','b':'world'}使用工厂函数dict,传入一个元素是列表的元祖作为参数来创建字典,例:?12d=dict((['a','hello'],['b','world']))#返回{'a':'hello','b':'world'}还有一种使用dict函数创建字典的方法,例:d=dict(x=1,y=2),返回d为{'x':1,'y':2}使用字典对象本身的fromkeys(s,[v])方法来创建一个字典,字典的健来自参数s,所有的值均为参数v的值,若参数v未给出则默认均为None,例:?12d={}.fromkeys(('a','b'),1)#返回{'a':1,'b':1}三、访问字典1.通过健来访问值,例:d[key]。可以通过key来引用value,但不可以通过value来引用key。读取不存在的key会引发异常,对不存在的key做赋值操作则会为字典增加一对键值。2.遍历字典:forkeyind.keys()或者可以直接forkeyind来操作。3.d.keys()——返回一个包含所有键的list,需要注意该list并不按照字典定义的顺序输出。4.d.values()——返回一个包含所有值的list,值列表的元素顺序与键列表的顺序一致。5.d.items()——返回一个list,该list由形如(key,value)的tuple组成。6.d.copy——得到字典的一个浅拷贝。7.d.get(key)——若字典中有key则返回d[key],否则返回None。8.d.get(key,default)——同上,若无则返回default的值。9.d.has_key(key)——判断是否含有key,含有则返回True,否则False。10.判断字典中是否存在某个键,还可以用in,notin操作符。四、字典的增删改1.增加字典元素——d['a']='hello'。2.删除字典元素——deld['a']或者d.pop('a')。3.清空字典元素——d.clear()从一个字典中清除所有元素。4.删除字典对象——deld5.把字典a的元素加入到字典d当中,键重复时会覆盖字典d的键值——d.update(a)。6.依顺序得到字典的一个键值对并删除,若字典是空的则抛出异常——d.popitem()7.删除指定键的键值对,并返回该键对应的值,若键不存在则返回参数v——d.pop(key,[v])增加字典元素nameinfo={}nameinfo['a1']='yangrong'#若字典里有a1主键,则覆盖原来的值,没有,则添加nameinfo{'a1':'yangrong'}遍历字典主键与键值fork,valueinnameinfo.items():...printk,value...a1yangrong查看字典所有主键dict={'ob1':'computer','ob2':'mouse','ob3':'printer'}dict.keys()['ob2','ob3','ob1']判断字典中是否有该主键dict.keys()['ob2','ob3','ob1']dict.has_key('ob2')#或'ob2'indictTruedict.has_key('ob4')False也有人用循环方法来判断forkeyindict.keys():但是这种方法毕竟不够简洁,查看字典所有键值内容dict={'ob1':'computer','ob2':'mouse','ob3':'printer'}dict.values()['mouse','printer','computer']列出所有项目dict.items()[('ob2','mouse'),('ob3','printer'),('ob1','computer')]清空字典dict.clear()dict{}拷贝字典dict{'ob2':'mouse','ob3':'printer','ob1':'computer'}a=dicta{'ob2':'mouse','ob3':'printer','ob1':'computer'}b=dict.copy()b{'ob2':'mouse','ob3':'printer','ob1':'computer'}比较字典cmp(a,b)首先比较主键长度,然后比较键大小,然后比较键值大小,(第一个大返回1,小返回-1,一样返回0)更新字典dict={'yangrong':{age:23,job:IT},xiaohei:{'age':'22','job':'dota'}}dict{'xiaohei':set(['age':'22','job':'dota']),'yangrong':{'age':'23','job':'IT'}}dict['xiaohei']=111#修改一级字典dict{'xiaohei':111,'yangrong':{'age':'23','job':'IT'}}dict['yangrong']['age']=25#修改二级字典dict{'xiaohei':111,'yangrong':{'age':25,'job':'IT'}}dict={'yangrong':['23','IT'],xiaohei:['22','dota']}dict['xiaohei'][1]=dota2#修改字典中列表某项,1是代表列表中第2个字符串。dict{'xiaohei':['22','dota2'],'yangrong':['23','IT']}删除字典元素dict{'xiaohei':['22','dota2'],'yangrong':['23','IT']}deldict['xiaohei']#删除xiaohei键值dict{'yangrong':['23','IT']}dict{'yangrong':['23','IT']}deldict['yangrong'][1]#删除yangrong主键的每2字值dict{'yangrong':['23']}删除整个字典dict{'yangrong':['23']}dict.clear()#同deldictdict{}将字符串切分为列表s=helloworldbyes.split()#用于把有规律的文本,读取出来后,使用列表进行修改,再写入文件。['hello','world','bye']将列表转换为字符串S.split(str,'')#将string转list,以空格切分存储字典(pickle序列化)#需导入pickle模块importpickle把字典内容存入文件f=file('data.txt','wb')#新建文件data.txt,'wb',b是打开块文件,对于设备文件有用pickle.dump(a,f)#把a序列化存入文件f.close()把内容读入字典(反序列化)a=open('data.txt','rb')#打开文件printpickle.load(a)#把内容全部反序列化增加字典元素nameinfo={}nameinfo['a1']='yangrong'#若字典里有a1主键,则覆盖原来的值,没有,则添加nameinfo{'a1':'yangrong'}遍历字典主键与键值fork,valueinnameinfo.items():...printk,value...a1yangrong查看字典所有主键dict={'ob1':'computer','ob2':'mouse','ob3':'printer'}dict.keys()['ob2','ob3','ob1']判断字典中是否有该主键dict.keys()['ob2','ob3','ob1']dict.has_key('ob2')#或'ob2'indictTruedict.has_key('ob4')False也有人用循环方法来判断forkeyindict.keys():但是这种方法毕竟不够简洁,查看字典所有键值内容dict={'ob1':'computer','ob2':'mouse','ob3':'printer'}dict.values()['mouse','printer','computer']列出所有项目dict.items()[('ob2','mouse'),('ob3','printer'),('ob1','computer')]清空字典dict.clear()dict{}拷贝字典dict{'ob2':'mouse','ob3':'printer','ob1':'computer'}a=dicta{'ob2':'mouse','ob3':'printer','ob1':'computer'}b=dict.copy()b{'ob2':'mouse','ob3':'printer','ob1':'computer'}比较字典cmp(a,b)首先比较主键长度,然后比较键大小,然后比较键值大小,(第一个大返回1,小返回-1,一样返回0)更新字典dict={'yangrong':{age:23,job:IT},xiaohei:{'age':'22','job':'dota'}}dict{'xiaohei':set(['age':'22','job':'dota']),'yangrong':{'age':'23','job':'IT'}}dict['xiaohei']=111#修改一级字典dict{'xiaohei':111,'yangrong':{'age':'23','job':'IT'}}dict['yangrong']['age']=25#修改二级字典dict{'xiaohei':111,'yangrong':{'age':25,'job':'IT'}}dict={'yangrong':['23','IT'],xiaohei:['22','dota']}dict['xiaohei'][1]=dota2#修改字典中列表某项,1是代表列表中第2个字符串。dict{'xiaohei':['22','dota2'],'yangrong':['23','IT']}删除字典元素dict{'xiaohei':['22','dota2'],'yangrong':['23','IT']}deldict['xiaohei']#删除xiaohei键值dict{'yangrong':['23','IT']}dict{'yangrong':['23','IT']}deldict['yangrong'][1]#删除yangrong主键的每2字值dict{'yangrong':['23']}删除整个字典dict{'yangrong':['23']}dict.clear()#同deldictdict{}将
本文标题:python 字典相关操作
链接地址:https://www.777doc.com/doc-4210405 .html