python3 字典操作
字典:
创建方式:
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}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341