python3 字典操作

字典:
创建方式:
    1、正常创建
    a = {'name': 'azj', 'age': 23, 'mail': '[email protected]'}
    2、通过工厂函数dict创建
    a = dict((['name', 'azj'], ['age', 23], ['email', '[email protected]']))
    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}

猜你喜欢

转载自blog.51cto.com/13399699/2128441