• [ python ] 字典类型的一些注意问题


    1) get()方法。 字典可以直接用a[b]的方式访问字典项,但如果b不存在时,会报异常。为了避免这种情况,可以使用get()方法来访问字典项,a.get(b)当b存在时,结果和a[b]一样,如果b不存在,不会报异常,而是返回None。除此之外,get()方法还可以设置第二个参数,如果b不存在,可以将第二个参数做为默认值返回。

    ====================================
    a = {}
    a["a"] = "A"
    print a["b"]                   #=> 异常
    print a.get("b")            #=> None
    c = a.get("b") or "B"    #=> c为“B”,这更类似于我们写别的程序时 c = xxx || "B"的思路
    c = a.get("b","B")        #=> c为“B”,在python中也可以使用这样的写法。
    ====================================

    2) 列表可以使用pop()方法弹出最末尾的元素,也可以通过pop(n)弹出指定索引的元素。而字典也有类似的用法。a.popitem()方法可以弹出字典中的一个元素,但这个元素是随机的,因为字典本身是无序的。a.pop(key)可以弹出指定key的项,类似于列表的pop(n)。

    3) update()方法。 update方法类似于yui的merge()和jQuery的extend()。合并两个字典对象。
    ===================================
    a = {"a":"A","b":"B"}
    b = {"c":"C","b":"ABC"}
    a.update(b)
    print a      #=> {"a":"A","b":"ABC","c":"C"}
    ===================================

    4) items()和iteritems()方法都普遍用于for循环的迭代中,不同的是items()返回的是列表对象,而iteritems()返回的是迭代器对象。两者的用法差不多,但iteritems()的性能更快。

    5) 字典有自己的copy()方法,但它只是浅复制,如果用深复制的话,需要使用copy模块的deepcopy方法。(怎么跟js一个毛病?我靠,是谁借鉴了谁的思路吗?)
  • 相关阅读:
    我的20130220日 在北京 do{ Web Develop } while(!die)
    关于NVelocity模板引擎初学总结
    C# 23种设计模式汇总
    基于模型的设备故障检测
    图像去噪之光斑去除
    虹膜识别
    封闭曲线拟合
    基于故障树的系统可靠性分析
    图像识别之棋子识别
    时间序列的模式距离
  • 原文地址:https://www.cnblogs.com/cly84920/p/4426725.html
Copyright © 2020-2023  润新知