您的位置:首页 > 其它

Chapter04 字典:当索引不好用时

2013-12-06 01:59 190 查看
字典的使用

    >>> 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.字典的方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: