zoukankan      html  css  js  c++  java
  • Python的字典操作

    Python的字典操作

    Python提供了多种应用于字典的操作。因为字典为容器,内建len函数可以将字典当作单一参数使用听切返回字典对象中项目(键/值对)的数目。

    字典会员

    Python2.2以及后面版本,D中的k运算符检测是否对象k是字典D中的键。如果是返回True如果不是返回False。相似的,

    索引一个字典

    字典D中的值与相关的键k被索引表示为:D[k]。索引字典没有的键会引起意外。例如:

    d = { 'x':42, 'y':3.14, 'z':7 }
    d['x']                           # 42
    d['z']                           # 7
    d['a']                           # raises exception

    平整赋值到一个使用还不在字典中的键的索引(例如,D[newkey]=value)是一个可行的操作,该操作加载键和值到字典里新的项目中。例如:

    d = { 'x':42, 'y':3.14, 'z':7 }
    d['a'] = 16                      # d is now {'x':42,'y':3.14,'z':7,'a':16}

    del D[k]中的del语句,删除字典中拥有键k的项目。如果k不是字典D中的键,del D[k]就会引起意外。

    字典方法

    字典对象提供了多种方法,如下表格所示。非变异方法返回结果,但不改变它们使用的对象。在下面列表中,DD1代表任何字典对象,k代表D中任何有效的键,x为任何对象。

    方法

    描述

    Non-mutating methods

     

    D.copy( )

    Returns a (shallow) copy of the dictionary

    D.has_key(k)

    Returns True if k is a key in D, otherwise returns False

    D.items( )

    Returns a copy of the list of all items (key/value pairs) in D

    D.keys( )

    Returns a copy of the list of all keys in D

    D.values( )

    Returns a copy of the list of all values in D

    D.iteritems( )

    Returns an iterator on all items(key/value pairs) in D

    D.iterkeys( )

    Returns an iterator on all keys in D

    D.itervalues( )

    Returns an iterator on all values in D

    D.get(k[,x])

    Returns an iterator on all values in D

    Mutating methods

     

    D.clear( )

    Removes all items from D

    D.update(D1)

    For each k in D1, sets D[k] equal to D1[k]

    D.setdefault(k[,x])

    Returns D[k] if k is a key in D; otherwise sets D[k] equal to x and returns x

    D.popitem( )

    Removes and returns an arbitrary item (key/value pair)


    项目,键还有值方法以任意排列返回它们的列表结果。然而,如果不加干预的呼叫字典中中任何方法,结果的顺序一样。iteritems,iterkeys, 以及itervalues方法,对于Python2.2是新的,它们返回相当于这些列表的迭代器。迭代器比列表消费更少内存,但是在当迭代一个迭代器时不允许修改字典。然而,迭代列表返回项目,键或值不会传递这种限制。直接迭代字典D就如同迭代于D.terkeys( )一样。

    popitem方法可以是用于毁灭性迭代到字典。项目和popitem都返回字典项目为键/值对,但使用popitem消耗更少内存,就如同它并不依赖单 独的项目列表。如果当循环时可以摧毁字典,节约内存使得在重复巨大字典中可以使用惯用语。在Python2.2及以后版本,当循环是直接迭代字典(或 iterkeysiteritems)也会消耗适度的内存,而且不会摧毁被迭代的的字典。

    setdefault方法返回与get相同的结果,但如果k不是D的键,setdefault还会有綁定D[k]x值的副作用。
    #---------------------------------------------------------------------------------------------

    a ={'a':'1','b':'2','c':'3'}

    >>> print a.items()
    [('a', '1'), ('c', '3'), ('b', '2')]
    >>> print a.keys()
    ['a', 'c', 'b']

    >>> print a.values()
    ['1', '3', '2']

    >>> print a.has_key('b')
    True

    >>> del a['a']
    >>> print a
    {'c': '3', 'b': '2'}
    >>> a['e']='4'
    >>> print a
    {'c': '3', 'b': '2', 'e': '4'}

    >>> print a.get('b')
    2

     

    此方法在2.3的版本下不能使用,于是经过测试,hoxide给出新的方法,更简单,而且2.32.4都可以用。
    >;>;>; a = {'a': 1, 'b':2}
    >;>;>; c = {'c':3}
    >;>;>; a.update(c)
    >;>;>; a
    {'a': 1, 'c': 3, 'b': 2}

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    LeetCode 42. Trapping Rain Water
    LeetCode 209. Minimum Size Subarray Sum
    LeetCode 50. Pow(x, n)
    LeetCode 80. Remove Duplicates from Sorted Array II
    Window10 激活
    Premiere 关键帧缩放
    AE 「酷酷的藤」特效字幕制作方法
    51Talk第一天 培训系列1
    Premiere 视频转场
    Premiere 暴徒生活Thug Life
  • 原文地址:https://www.cnblogs.com/kungfupanda/p/2674903.html
Copyright © 2011-2022 走看看