python之字典

来源:互联网 发布:卸载office2013软件 编辑:程序博客网 时间:2024/06/16 01:22

为什么需要字典

In [1]: list1 = ['name','age','class']In [2]: list2 = ['haha',14,'linux']In [3]: zip(list1,list2)Out[3]: [('name', 'haha'), ('age', 14), ('class', 'linux')]

zip函数可以将两个列表结合
字典就如中文字典,起到索引并快速找到想要的信息的作用,在python中,字典是python中唯一的映射类型,key-value对应类型,字典对象是可变的,但key必须用不可变对象,字典可以有效减少任务的繁琐

字典的定义

简单字典的创建

##字典的定义一般以{key:value}模式In [4]: dic = {'name':'cici','age':14}In [5]: type(dic)Out[5]: dict##字典的key索引,由于key是不可变对象,所以不可以用0,1.. 来索引,要用字符来索引In [6]: dic['name']Out[6]: 'cici'In [7]: dic[0]---------------------------------------------------------------------------KeyError                                  Traceback (most recent call last)<ipython-input-7-c3244007d783> in <module>()----> 1 dic[0]KeyError: 0##由于value值是可变的,所以可以用位置参数来索引In [8]: dic['name'][0]Out[8]: 'c'

内建方法:fromkeys

字典中的key有相同的value值,默认为None

In [56]: dic.fromkeys([1,3,5,7])Out[56]: {1: None, 3: None, 5: None, 7: None}In [57]: dic.fromkeys([1,3,5,7],'hello')Out[57]: {1: 'hello', 3: 'hello', 5: 'hello', 7: 'hello'}

字典的访问

#直接通过key访问In [4]: dic = {'lixu':'123','mingm':'qwe3','kikio':'ada'}In [6]: dic['mingm']Out[6]: 'qwe3'

字典值的访问

循环遍历访问

In [1]: dic = {'name':'cici','age':4,'feel':'happy'}In [2]: for key in dic:   ...:     print dic[key]   ...:     happy4cici

字典的添加

dic[key] = value
由于字典是无序的,所以不能按照位置参数添加

In [4]: dicOut[4]: {'age': 4, 'feel': 'happy', 'name': 'cici'}In [5]: dic['gift']='doll'In [6]: dicOut[6]: {'age': 4, 'feel': 'happy', 'gift': 'doll', 'name': 'cici'}

字典的操作

In [11]: dicOut[11]: {'age': 4, 'feel': 'happy', 'gift': 'doll', 'name': 'cici'}In [12]: dic.dic.clear       dic.has_key     dic.itervalues  dic.setdefault  dic.viewkeysdic.copy        dic.items       dic.keys        dic.update      dic.viewvaluesdic.fromkeys    dic.iteritems   dic.pop         dic.values      dic.get         dic.iterkeys    dic.popitem     dic.viewitems   

常用方法

dic.get():如果key存在于字典中,返回对应value值
dic.keys():返回字典的所有key值
dic.has_keys():字典中是否存在某个key值

In [23]: dic = {'name':'cici','age':4,'feel':'happy'}In [24]: dic.get('name')Out[24]: 'cici'In [25]: dic.keys()Out[25]: ['feel', 'age', 'name']In [26]: dic.has_key(ss)---------------------------------------------------------------------------NameError                                 Traceback (most recent call last)<ipython-input-26-43113b712ec1> in <module>()----> 1 dic.has_key(ss)NameError: name 'ss' is not definedIn [27]: dic.has_key('name')Out[27]: True

删除

dic.pop(key)
根据key值删除字典的元素;

In [13]: dicOut[13]: {'age': 4, 'feel': 'happy', 'gift': 'doll', 'name': 'cici'}In [14]: dic.pop('gift')Out[14]: 'doll'In [15]: dicOut[15]: {'age': 4, 'feel': 'happy', 'name': 'cici'}

dic.popitem()
随机删除字典元素,返回(key,value)

In [15]: dicOut[15]: {'age': 4, 'feel': 'happy', 'name': 'cici'}In [16]: dic.popitem()Out[16]: ('feel', 'happy')In [17]: dic.popitem()Out[17]: ('age', 4)In [18]: dicOut[18]: {'name': 'cici'}

dic.clear()
删除字典中的所有元素

In [18]: dicOut[18]: {'name': 'cici'}In [19]: dic.clear()In [20]: dicOut[20]: {}

del dic
删除字典本身

In [20]: dicOut[20]: {}In [21]: del(dic)In [22]: dic---------------------------------------------------------------------------NameError                                 Traceback (most recent call last)<ipython-input-22-1b445b6ea935> in <module>()----> 1 dicNameError: name 'dic' is not defined