python3 字典操作

发布时间:2019-09-27 07:09:02编辑:auto阅读(1871)

    字典:
    创建方式:
        1、正常创建
        a = {'name': 'azj', 'age': 23, 'mail': 'azj@163.com'}
        2、通过工厂函数dict创建
        a = dict((['name', 'azj'], ['age', 23], ['email', 'azj@163.com']))
        3、
        a = {}.fromkeys(('azj', 'tom', 'lili'), 11)
        {'azj': 11, 'tom': 11, 'lili': 11}
    
    >>> a = {'name': 'azj', 'age': 23}
    >>> a
    {'name': 'azj', 'age': 23}
    >>> '%(name)s:%(age)s' % a
    'azj:23'

    修改:
    adict = {'name': 'azj', 'age': 26}

    adict
    {'name': 'azj', 'age': 26}
    adict['age'] = 22
    adict
    {'name': 'azj', 'age': 22}
    adict['phone'] = '15901037927' #字典里有这个字段修改,没有则添加该字段
    adict
    {'name': 'azj', 'age': 22, 'phone': '15901037927'}

    删除:
    adict
    {'name': 'azj', 'age': 22, 'phone': '15901037927'}

    adict.pop('name') #pop默认弹出并删除最后一项,在字典里应为字典是无序的所以需要指定弹出的字段信息
    'azj'
    adict
    {'age': 22, 'phone': '15901037927'}
    adict.popitem() ###随机删除并弹出一项内容
    ('phone', '15901037927')
    adict
    {'age': 22}
    adict.clear() #清空列表
    adict
    {}
    del adict #删除列表
    adict

    len(字典)    #统计字典内的元素数目
    >>> len(adict)
    2

    字典的复制:

    a = {'name': 'azj', 'age': 23}
    a
    {'name': 'azj', 'age': 23}
    b = a #内容赋值,指向相同的内存空间
    b
    {'name': 'azj', 'age': 23}
    a
    {'name': 'azj', 'age': 23}
    id(a)
    140165656248536
    id(b)
    140165656248536
    c = a.copy()
    c
    {'name': 'azj', 'age': 23}
    id(c)
    140165656248752

    XXX.get('key',[]) #列出字典的value,如果没有该key则默认返回none,自定义返回信息[]

    dict
    {'name': 'azj', 'age': 26}
    dict.pop('age')
    26
    dict
    {'name': 'azj'}
    dict.get('name')
    'azj'
    dict.get('age')
    dict.get('age', 'not found')
    'not found'

    XXX.setdefault() #当字典里面没有该值的情况下进行添加,有的话则无法添加

    dict
    {'name': 'azj'}
    dict.setdefault('age', 26)
    26
    dict
    {'name': 'azj', 'age': 26}
    dict.setdefault('age', 25)
    26
    dict
    {'name': 'azj', 'age': 26}

    dict.keys() #列出当前字典所有的key
    dict_keys(['name', 'age'])
    dict.values() #列出当前字典的所有value
    dict_values(['azj', 26])

    dict.items() #列出当前字典的key和value
    dict_items([('name', 'azj'), ('age', 26)])

    ##key,value翻转

    {value:key for key, value in dict.items()}
    {'azj': 'name', 26: 'age'}
    #互换的时候注意,value相同会产生元素丢失的现象
    a = {}.fromkeys(('tom', 'bob', 'lili'), 18)
    a
    {'tom': 18, 'bob': 18, 'lili': 18}
    {val: key for key, val in a.items()}
    {18: 'lili'}

    字典的拼接:

    a = {'name': 'azj'}
    a
    {'name': 'azj'}
    b = {'age': 26}
    a.update(b)
    a
    {'name': 'azj', 'age': 26}

关键字