zoukankan      html  css  js  c++  java
  • 4.1. 字典方法

    1clear

    清除字典中所有的项。

    >>> x = {}

    >>> y = x

    >>> x['key'] = 'value'

    >>> y                        #共享X的内容

    {'key': 'value'}

    >>> x.clear()          #如果用 x={ }置空,y的内容不会消失

    >>> y

    {}

     

    2copy

    返回一个具有相同键--值对的新字典(浅复制 shallow copy,值的本身是相同的,但不是副本)

    >>> x = {'username':'admin','machines':['foo','bar','baz']}

    >>> y = x.copy()

    >>> y['username'] = 'mlh'

    >>> y['machines'].remove('bar')

    >>> y

    {'username': 'mlh', 'machines': ['foo', 'baz']}

    >>> x

    {'username': 'admin', 'machines': ['foo', 'baz']}      #移除的值变化,修改的值没变

    避免这个问题可以使用深复制(deep copy

    >>> from copy import deepcopy

    >>> d = {}

    >>> d['names'] = ['Alfred','Bertrand']

    >>> c = d.copy()

    >>> dc = deepcopy(d)

    >>> d['names'].append('Clive')

    >>> c

    {'names': ['Alfred', 'Bertrand', 'Clive']}

    >>> dc

    {'names': ['Alfred', 'Bertrand']}

     

    3fromkeys

    使用给定的键建立新的字典,每个键默认对应的值为None

    >>> {}.fromkeys(['name','age'])

    {'age': None, 'name': None}

     

    >>> dict.fromkeys(['name','age'])

    {'age': None, 'name': None}

    >>> dict.fromkeys(['name','age'],'(unknown)')      # 指定值

    {'age': '(unknown)', 'name': '(unknown)'}

     

    4get

    访问字典项的方法(当项不存在时不会报错)

    >>> d = {}

    >>> print d.get('name')    # 空字典,返回一个None

    None

    >>> d.get('name','N/A')

    'N/A'

    >>> d['name'] = 'Eric'

    >>> d.get('name')

    'Eric'

     

    5has_key

    检查字典中是否含有给出的键 3.0中没有这个函数了)

    >>> d = {}

    >>> d.has_key('name')

    False

    >>> d['name'] = 'Eric'

    >>> d.has_key('name')

    True

     

    6items iteritems

      items 方法将所有的字典项以列表方式返回

    >>> d = {'title':'python web site','url':'http://www.python.org', 'spam':0 }

    >>> d.items()

    [('url', 'http://www.python.org'), ('spam', 0), ('title', 'python web site')]     # -值没有顺序

     iteritems 和上面效果类似,但返回一个迭代器对象

    >>> it = d.iteritems()

    >>> it

    <dictionary-itemiterator object at 0xb73212fc>    # 对象

    >>> list(it)

    [('url', 'http://www.python.org'), ('spam', 0), ('title', 'python web site')]

     

    7keys iterkeys

    keys方法将字典中的键以列表形式返回,而iterkeys则返回针对键的迭代器

     

    8pop popitem

     pop方法用来获得对应也给定键的值

    >>> d = {'x':'1','y':'2'}

    >>> d.pop('x')

    '1'

    >>> d

    {'y': '2'}

    popitem方法,类似与pop但不要带键 (注意字典没有“最后的元素”或者顺序的概念)

    >>> d = {'x':'1','y':'2','z':'3'}

    >>> d.popitem()

    ('y', '2')

    >>> d

    {'x': '1', 'z': '3'}

     

    9setdefault

    获得与给定键相关联的值,给不含给定键设值

    >>> d = {}

    >>> d.setdefault('name','N/A')

    'N/A'

    >>> d

    {'name': 'N/A'}

    >>> d['name']='hello'

    >>> d.setdefault('name','N/A')

    'hello'

    >>> d

    {'name': 'hello'}

     

    10update

    利用一个字典更新另外一个字典

    >>> d = {'title':'python web site','url':'http://www.python.org','changed':'2014-02-15'}

    >>> x = {'title':'python language website'}

    >>> d.update(x)

    >>> d

    {'url': 'http://www.python.org', 'changed': '2014-02-15', 'title': 'python language website'}

     

    11values itervalues

    values 方法以列表的形式返回字典中的值,itervalues返回值的迭代器

    >>> d = {}

    >>> d[1] = 1

    >>> d[2] = 2

    >>> d[3] = 3

    >>> d[4] = 1

    >>> d.values()

    [1, 2, 3, 1]              # 返回键的列表不同的时,返回值的列表中可以包含重复的元素





  • 相关阅读:
    自动化部署功
    docker 安装
    批量操作
    centos7 内核升级
    centos 6.5 升级 内核
    如何进行再linux 下查看 java程序的堆栈信息
    binlog 日志恢复以及操作
    java 中 Integer 比较 问题
    docker 使用
    soucetree 安装
  • 原文地址:https://www.cnblogs.com/51runsky/p/4574587.html
Copyright © 2011-2022 走看看