• (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__

  • 相关阅读:
    拓扑排序笔记
    Codeforces Round #683 (Div. 2, by Meet IT)(A->C)(构造,思维,贪心)
    Acwing 846. 树的重心(DFS枚举删除每一个点)
    Acwing 125. 耍杂技的牛(贪心)(从局部到全局)
    Acwing 802. 区间和(下标离散化+vector+二分)
    Acwing 799. 最长连续不重复子序列(双指针)
    Acwing 139. 回文子串的最大长度(前缀+后缀处理+哈希+二分)
    Linux shell 变量$#,$@,$0....的含义
    一双不锈钢筷子 的测试用例?
    OSI模型 TCP/IP模型 再整理
  • 原文地址:https://www.cnblogs.com/toby2chen/p/5239539.html
Copyright © 2020-2023  润新知