字典定义创建
key:value 键值对的方式,使用大括号“{}”,而key不可重复;key必须是不可变对象
>>> a = {"a":1,"b":2}
>>> type(a)
<class 'dict'>
>>> a = dict(a=1,b=2,b=3)
SyntaxError: keyword argument repeated
>>> a = dict(a=1,b=2,c=2)
>>> type(a)
<class 'dict'>
>>> a = dict([("a",1),("b",2)])
>>> a
{'a': 1, 'b': 2}
取值、修改与长度
len(字典)获取的键值对的个数
>>> a = dict(a=1,b=2,c=2)
>>> a["a"]
1
>>> len(a)
3
>>> a["c"]=3
>>> a
{'a': 1, 'b': 2, 'c': 3}
>>> a
{'a': 1, 'b': 2}
>>> a["d"]
Traceback (most recent call last):
File "<pyshell#84>", line 1, in <module>
a["d"]
KeyError: 'd'
>>> a.get("d")
>>> a.get("d",0)
0
>>>
检查key是否存在
只能用于判断是否存在对应的key 而不能判断是否存在对应value
>>> "a" in a
True
使用get set 取值与设置默认值
使用get取值若key不存在时不会报错,而且可以指定返回的默认值;setdefault方法,设置默认值,若key不存在则插入,且可指定插入默认值,若key存在不会更改原有的值
>>> a.get("d")
>>> a.get("d",0)
0
>>> a.setdefault("d")
>>> a
{'a': 1, 'b': 2, 'c': 3, 'd': None}
>>> a.setdefault("d",4)
>>> a
{'a': 1, 'b': 2, 'c': 3, 'd': None}
>>> a.setdefault("e",5)
5
>>> a
{'a': 1, 'b': 2, 'c': 3, 'd': None, 'e': 5}
字典拼接或者增加键值对–update
update可以是另一个字典,也可以是一个元组数组
>>> a
{'a': 1, 'b': 2, 'c': 3, 'd': None, 'e': 5}
>>> b = {"f":"new"}
>>> a.update(b)
>>> a
{'a': 1, 'b': 2, 'c': 3, 'd': None, 'e': 5, 'f': 'new'}
>>> a.update([("g","a")])
>>> a
{'a': 1, 'b': 2, 'c': 3, 'd': None, 'e': 5, 'f': 'new', 'g': 'a'}
>>>
字典删除键值对
del删除键值对时若不存在会报错,同样的pop方法也是,但是pop方法可以设置默认值,即在对应key不存在时删除返回的值;popitem()默认删除最后一个;
>>> a
{'a': 1, 'b': 2, 'c': 3, 'd': None, 'e': 5, 'f': 'new', 'g': 'a'}
>>> del a["a"]
>>> a
{'b': 2, 'c': 3, 'd': None, 'e': 5, 'f': 'new', 'g': 'a'}
>>> del a["aaa"]
Traceback (most recent call last):
File "<pyshell#107>", line 1, in <module>
del a["aaa"]
KeyError: 'aaa'
>>> a.pop("d")
>>> a
{'b': 2, 'c': 3, 'e': 5, 'f': 'new', 'g': 'a'}
>>> a.pop("aaa")
Traceback (most recent call last):
File "<pyshell#108>", line 1, in <module>
a.pop("aaa")
KeyError: 'aaa'
>>> a.pop("aaa","bbb")
'bbb'
>>> a
{'b': 2, 'c': 3, 'e': 5, 'f': 'new', 'g': 'a'}
>>> a.popitem()
('g', 'a')
>>> a
{'b': 2, 'c': 3, 'e': 5, 'f': 'new'}