创建字典
dict(**kwargs)
dict(mapping)
字典中存放的的元素为:键-值对,使用 {} 创建字典
注意:键-值对中的键不能为 list、dict、set
若初始化字典时出现重复的键,则后面的键-值对视为对首次出现的键-值对做修改
>>> D1 = {}
>>> D1 = dict()
>>> D3 = {'小明':'18岁','小红':'19岁','小明':'20岁'}
>>> D3
{'小明': '20岁', '小红': '19岁'}
>>> D4 = dict((('小明','20岁'),('小红','19岁')))
>>> D4
{'小明': '20岁', '小红': '19岁'}
>>> D5 = dict(小明='20岁',小红='19岁')
>>> D5
{'小明': '20岁', '小红': '19岁'}
访问和修改字典
按键访问字典,若访问的键-值对不存在,则报错
修改键-值对时,若该键-值对不存在,则添加
>>> D1 = {'小明':'18岁','小红':'19岁'}
>>> D1['小明']
'18岁'
>>> D1['小兰'] = '20岁'
>>> D1
{'小明': '18岁', '小红': '19岁', '小兰': '20岁'}
字典中的常用方法
fromkeys
fromkeys(iterable, value=None, /)
用于对一个可迭代对象中的多个键批量设置同一个值
>>> dict.fromkeys((1,2,3))
{1: None, 2: None, 3: None}
>>> dict.fromkeys((1,2,3),'Hello')
{1: 'Hello', 2: 'Hello', 3: 'Hello'}
>>> dict.fromkeys((1,2,3),(1,2,3))
{1: (1, 2, 3), 2: (1, 2, 3), 3: (1, 2, 3)}
keys、values、items
keys()
用于得到字典中的所有键组成的可迭代对象
values()
用于得到字典中的所有值组成的可迭代对象,值可重复出现
items()
用于得到字典中的所有键-值对组成的可迭代对象
可用 key,value 形式承接一个键值对,分别对应键和值
>>> D1 = dict.fromkeys((1,2,3,4,5),'Good')
>>> D1.keys()
dict_keys([1, 2, 3, 4, 5])
>>> D1.values()
dict_values(['Good', 'Good', 'Good', 'Good', 'Good'])
>>> D1.items()
dict_items([(1, 'Good'), (2, 'Good'), (3, 'Good'), (4, 'Good'), (5, 'Good')])
get
get(self, key, default=None, /)
用于根据指定的键得到对应值,键不存在时输出预设信息
>>> D1 = dict.fromkeys(range(10),'存在')
>>> D1.get(9,'不存在')
'存在'
>>> D1.get(10,'不存在')
'不存在'
setdefault、update
setdefault(self, key, default=None, /)
用于添加新的键-值对,若键已存在,则添加新的键-值对的语句不起作用
update(dict)
update方法使用一个字典去更新另一个字典
可对字典进行修改或添加元素
重复键对应的键-值对会覆盖原有的
>>> D1 = {1:'one',2:'two',3:'three'}
>>> D1.setdefault(4)
>>> D1
{1: 'one', 2: 'two', 3: 'three', 4: None}
>>> D1.setdefault(4,'four')
>>> D1
{1: 'one', 2: 'two', 3: 'three', 4: None}
>>> D1.update({4:'four',5:'five'})
>>> D1
{1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five'}
pop、popitem、clear、del
pop(k[,d])
用于按键弹出对应值,并删除键-值对
若指定了d,则当键不存在时返回d
popitem(self, /)
用于随机弹出键-值对
clear()
用于清空字典
del方法用于删除字典
>>> D1 = {1:'one', 2:'two', 3:'three'}
>>> D1.pop(1)
'one'
>>> D1.popitem()
(3, 'three')
>>> D1
{2: 'two'}
>>> D1.clear()
>>> D1
{}
>>> del D1
>>> D1
NameError: name 'D1' is not defined
copy
copy()
用于得到一个与原字典元素一样的新字典,为深拷贝
>>> D1 = {1:'one',2:'two'}
>>> D2 = D1.copy()
>>> D1 == D2
True
>>> D1 is D2
False