使用过程,如下所示:
a={'name':'tony','sex':'male'}
获得name的值的方式有两种
print a['name'],type(a['name'])
print a.get('name'),type(a.get('name'))
这两种的结果完全一致,并没有任何的差异。怎么选择这两种不同的字典的取值方式呢?
如果字典已知,我们可以任意选择其中一个,当不确定字典中是否存在某个键时,之前的做法如下:
if "age" in a.keys():
print(a["age"])
如果不提前判断的话,会直接报出a["age"]
的keyerror
错误,提示没有该key的值。
而是用a.get("age")
则不会产生错误,解析器的返回值,如果存在就会返回相应的value
。如果不存在的话,就直接返回None
。
if a.get("age"):
print(a["key"])
而想要改变value的值,则需要通过
a["name"] = "jack"
使用a.get("name")="jack"
编译器会提示SyntaxError: can't assign to function call
原因是不能使用a.get("name")="jack"
对字典中的键值进行重新赋值。