(15)字典操作

* 字典概述:
    # 可变的,像列表一样元素是可变的
    # 可以存任何对像,也和列表一样每一个元素可以是不同的对象
      数量和列表一样,没有限制
    # 采用 key:value 方式存数据
    # 又名“关联数组”或“哈希表”
   
* 常规操作
    # 创建字典
        @方法一:
        >>> mydict={}
        >>> type(mydict)
        Out[17]: dict
        >>> mydict
        Out[18]: {}
       
        >>> mydict ={"name":"toby","sex":"male"}
        >>> type(mydict)
        Out[20]: dict
        >>> mydict
        Out[21]: {'name': 'toby', 'sex': 'male'}
       
        >>> mydict={}
        >>> mydict['name']="toby"
        >>> mydict['sex']="male"
        >>> mydict
        Out[28]: {'name': 'toby', 'sex': 'male'}
       
        >>> mydict['name']=['tom',"john","jim"]
        >>> mydict
        Out[30]: {'name': ['tom', 'john', 'jim'], 'sex': 'male'}
       
        @方法二:
        从其它数据来创建
        >>> name=(['first',"google"],["second","baidu"]) #元组
        >>> mydict=dict(name)
        >>> mydict
        Out[35]: {'first': 'google', 'second': 'baidu'}
       
        >>> mydict=dict(first="google",second="baidu") #构造方法
        >>> mydict
        Out[68]: {'first': 'google', 'second': 'baidu'}
       
        >>> mydict=dict(zip(('first',"second"),("google","baidu"))) #列表
        >>> mydict
        Out[79]: {'first': 'google', 'second': 'baidu'}
       
        >>> name=[['first',"google"],["second","baidu"]] #列表
        >>> mydict=dict(name)
        >>> mydict
        Out[53]: {'first': 'google', 'second': 'baidu'}
       
        >>> name={'first':"google","second":"baidu"} #字典
        >>> mydict=dict(name)
        >>> mydict
        Out[61]: {'first': 'google', 'second': 'baidu'}
       
        @方法三
        采用fromkeys
        >>> mydict={}.fromkeys(("third","forth"),("yahoo"))
        >>> mydict
        Out[42]: {'forth': 'yahoo', 'third': 'yahoo'}
       
    # 访问字典
        >>> mydict
        Out[87]: {'first': 'google', 'second': 'baidu'}
        >>> mydict['first']
        Out[88]: 'google'
       
        >>> mydict.get('first')
        Out[91]: 'google'
        用get方法,没有的key,不会报错,返回null
       
        >>> mydict
        Out[110]: {'first': 'sina', 'second': 'baidu'}
        >>> len(mydict)
        Out[111]: 2
        得到字典的元素数量
       
        >>> mydict
        Out[99]: {'first': 'sina', 'second': 'baidu'}
        >>> mydict.keys()
        Out[100]: ['second', 'first']
        得到所有 key列表
       
        >>> mydict.values()
        Out[101]: ['baidu', 'sina']
        得到所有 value 列表
       
        >>> mydict.items()
        Out[106]: [('second', 'baidu'), ('first', 'sina')]
        得到 key value
       
    # 遍历
        >>> for item in mydict:
        ...     print item
        ...    
        second
        first
        得到是key
       
        >>> for item in mydict.values():
        ...     print item
        ...    
        baidu
        sina
        得到value
       
        >>> for item in mydict:
        ...     print str(item)+":"+mydict[item]+" "
        ...    
        second:baidu
        first:sina
        得到 key 和 value
       
        >>> for (key,value) in mydict.items():
        ...     print str(key)+":" +str(value)
        ...    
        second:baidu
        first:sina
        得到 key 和 value

       >>> for(key,value) in mydict.iteritems():
        ...     print str(key)+":" +str(value)
        ...    
        second:baidu
        first:sina
       
        注:items()返回的是列表对象,而iteritems()返回的是迭代器对象
            两者的用法差不多,但iteritems()的性能更快


   
    # 修改字典
        >>> mydict['first']="sina"
        >>> mydict
        Out[95]: {'first': 'sina', 'second': 'baidu'}   
       
    # 删除
        >>> mydict
        Out[114]: {'first': 'sina', 'second': 'baidu'}
        >>> mydict.pop('second')
        Out[115]: 'baidu'
        >>> mydict
        Out[116]: {'first': 'sina'}
        对象方法删除
       
        >>> mydict
        Out[118]: {'first': 'sina', 'second': 'baidu'}
        >>> del(mydict['second'])
        >>> mydict
        Out[120]: {'first': 'sina'}
        用系统函数del
       
    # 合并
        >>> mydict
        Out[125]: {'first': 'sina'}
        >>> mydict2
        Out[126]: {'third': 'yahoo'}
        >>> mydict.update(mydict2)
        >>> mydict
        Out[128]: {'first': 'sina', 'third': 'yahoo'}
        >>> mydict2
        Out[130]: {'third': 'yahoo'}   
        第一个得到合并,第二个字典没有影响    
       
* 查字典的帮助文档
    dir(dict)     help(dict.xxx)  xxx具体的方法名   
   
    打开字典对象文档 print dict.__doc__

原文地址:https://www.cnblogs.com/toby2chen/p/5239539.html