Python-字典使用

来源:互联网 发布:网络维护外包收费标准 编辑:程序博客网 时间:2024/05/16 15:37
  1. 创建:字典可嵌套
    {key1:value1,key2:value2}
    说明:字典是由多个键以及其对应的值组成的键值对组成的,字典以左大 括号开始,并以右大括号结束,键与值之间用冒号分隔,键值对儿之间用 逗号分隔;
    注意:字典中的键是唯一的
  2. 基本操作
    通用的有:
    len[d] , d[k] = v , del d[k] , k in d
    特点:
    第一点:键(key)的类型任意
    第二点:自动添加,key不存在的时候自动添加
    第三点 : 成员资格, k in d 找的是key,不是值value,而list中v in l 找的是value
  3. 字典方法:

    • clear:
      说明:用于清除字典中全部的键值对儿,调用完该方法后,原字典变成一 个空字典;
      注意:该方法直接操作原字典,调用后不返回值(或者说直接返回 None )

    • get:
      说明:是个更宽松的访问字典项的方法,如果键在字典中,则返回值, 如果不在,返回空,也可以给不存在的键指定默认值
      说明:可以检查字典中是否含有给出的键,python3中已经 不 包含此 项,可以用 k in dict 的方式代替

    • items和iteritems:
      说明:items以列表方式返回字典中的键值对,iteritems以迭代器对象 返回键值对儿(Python3中不再支持)

    • keys和iterkeys:
      说明:返回字典中的 键,iterkeys返回键的迭代器

    • pop:
      用于获取给定键的值,并将该键值对从字典中移除
    • popitem:
      说明:用于随机弹出字典中的键值对儿;可以用于清除一个字典
    • update:
      说明:将新字典中的键值对儿更新到原字典中,如果新字典中有的键值 对儿,原字典中没有,则会在原字典中增加新键值对儿;
    • values和itervalues:
      参考上面的keys,items
    • copy和deepcopy:
      说明:用于创建一个新的字典,用两种复制方法:copy和deepcopy
      注意:
      copy在复制过程中,如果字典中的 值 对象是复杂对象,如列表, 字典等等,则拷贝完后,新的字典中的 值 指向的还是原字典中的 对象,所以修改新对象中的 值 ,同时也是修改原字典中的值,但 是如果字典中的对象是普通类型,如是数字,字符串等,则修改新字 典不会影响原字典。
      copy 浅层复制
      deepcopy 深层复制
例子: 1:  #copy的用法和效果 2:  >>> x = {'Name' : 'Bill', 'Colors': {'red', 'green', 'blue'}} 3:  >>> y = x.copy() 4:  >>> y 5:  {'Colors': ['blue', 'green', 'red'], 'Name': 'Bill'} 6:  #删除颜色列表中的 ‘red’ 7:  >>> x['Colors'].remove('red') 8:  >>> x 9:  {'Colors': ['blue', 'green'], 'Name': 'Bill'}10:  #y字典中的颜色列表也发生的改变11:  >>> y12:  {'Colors': ['blue', 'green'], 'Name': 'Bill'}13:  >>> 14:  15:  16:  #deepcopy的用法和效果17:  >>> from copy import deepcopy18:  >>> x = {'colors':['red','green','blue'],'name':'Bill'}19:  >>> x20:  {'colors': ['red', 'green', 'blue'], 'name': 'Bill'}21:  #将x深拷贝给y22:  >>> y = deepcopy(x)23:  >>> y24:  {'colors': ['red', 'green', 'blue'], 'name': 'Bill'}25:  #修改x26:  >>> x['colors'].remove('red')27:  >>> x28:  {'colors': ['green', 'blue'], 'name': 'Bill'}29:  #y没有发生改变30:  >>> y31:  {'colors': ['red', 'green', 'blue'], 'name': 'Bill'}32:  >>> 33:  、`
0 0
原创粉丝点击