Chapter04 字典:当索引不好用时

来源:互联网 发布:普通话在线测试软件 编辑:程序博客网 时间:2024/05/02 03:03
字典的使用
    >>> names = ['Alice','Bob']
    >>> names[1]
    'Bob'
    >>> numbers = ['1234', '4321']
    >>> numbers[names.index('Bob')]
    '4321'

创建和使用字典
    >>> phonebook = {'Alice': '1234', 'Bob': '4321'}
    >>> phonebook
    {'Bob': '4321', 'Alice': '1234'}
可以这样调用
    >>> phonebook['Bob']              
    '4321'
反之就不行
    >>> phonebook['4321']
    Traceback (most recent call last):
      File "<pyshell#19>", line 1, in <module>
        phonebook['4321']
    KeyError: '4321'

dict函数
 通过其他映射(比如字典,这里的phonebook)或者(键,值)这样的序列对建立字典。
    >>> d = dict(phonebook)
    >>> d
    {'Bob': '4321', 'Alice': '1234'}
    >>> d['Bob']
    '4321'

基本字典操作
    len(d)      返回d中项(一个键值对)的数量
    d[k]         返回关联到键k上的值
    d[k] = v     将值v关联到键k上
    del d[k]    删除键为k的项
    k in d        检查d中是否含有键为k的项

字典的格式化字符串
    >>> phonebook
    {'Bob': '4321', 'Alice': '1234'}
    >>> "Bob's phone number is %(Bob)s." % phonebook
    "Bob's phone number is 4321."
    >>> "Bob's phone number is %(Alice)s." % phonebook
    "Bob's phone number is 1234."

字典方法
    clear        -清除字典中多有的项
        >>> phonebook
        {'Bob': '4321', 'Alice': '1234'}
        >>> phonebook.clear()
        >>> phonebook
        {}
    copy        -返回一个具有相同键值的新字典
        >>> DB = {'name':'Merisc', 'school':'Sun-Yet'}
        >>> DB
        {'school': 'Sun-Yet', 'name': 'Merisc'}
        >>> me = DB.copy()
        >>> me
        {'school': 'Sun-Yet', 'name': 'Merisc'}
    fromkeys    -使用给定的键建立新的字典,每个键默认对应的值为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)'}
    get            -访问字典项,不存在时出错
        >>> d = {}
        >>> print d['name']
        Traceback (most recent call last):
          File "<pyshell#54>", line 1, in <module>
            print d['name']
        KeyError: 'name'
        >>> print d.get('name')
        None
        >>> print d.get('name', 'N/A')
        N/A
        >>> d['name'] = 'Eric'
        >>> d.get('name')
        'Eric'    
    has_key        -检查是否含有给出的键
        >>> d.has_key('name')
        True
        >>> d.has_key('n')
        False
    items和iteritems        -items以列表方式返回所有字典项,
                            -iteritems返回一个迭代器对象而不是列表(一般更高效)
        >>> d.items()
        [('name', 'Eric')]
        >>> it = d.iteritems()
        >>> it
        <dictionary-itemiterator object at 0x000000000329AD68>
        >>> d.iteritems
        <built-in method iteritems of dict object at 0x0000000002F28CE8>
    keys和iterkeys        -keys以列表的形式返回,iterkeys返回针对键的迭代器
    pop                    -获得对应于给定键的值,并且将这个键值对移除
        >>> DB
        {'school': 'Sun-Yet', 'name': 'Merisc'}
        >>> DB.pop('school')
        'Sun-Yet'
        >>> DB
        {'name': 'Merisc'}
    popitem            -弹出随机的项,并且移除
    setdefault        -类似于get,获得给定键相关联的值,在字典中不含有给定键的情况下设定相应的键值。
        >>> d = {}
        >>> d.setdefault('name','N/A')
        'N/A'
        >>> d
        {'name': 'N/A'}
    update        -可以利用一个字典项更新另外一个字典
        >>> d = {'title':'Python', 'url':'www.python.org'}
        >>> x = {'title':'C++'}
        >>> d.update(x)
        >>> d
        {'url': 'www.python.org', 'title': 'C++'}
    values和itervalues        -values以列表的形式返回字典中的值
                            -itervalues返回值得迭代器
        >>> d = {}
        >>> d[1] = 1
        >>> d[2] = 2
        >>> d[3] = 3
        >>> d[4] = 1
        >>> d.values()
        [1, 2, 3, 1]
        >>> d.itervalues()
        <dictionary-valueiterator object at 0x000000000329ADB8>
        
        
小结
    1.映射
    2.利用字典格式化字符串
    3.字典的方法
原创粉丝点击