1. get
注意以下两种形式的细微差别,差别在返回值的类型上:
d.get(value, '')
d.get(value, [''])
>> d = {}
>> d.get(value, '')
''
>> d.get(value, [''])
['']
2. update:字典更新
x = {'a': 1, 'b': 2}
y = {'b': 3, 'c': 4}
此时如果我们想通过字典 y 更新字典 x,以得到新的字典 z = {'a': 1, 'b': 3, 'c': 4}
,如果使用字典的成员方法(update)方法,update 方法没有返回值,且其对字典的修改是 in-place 的,就像 list 的 append、extend 方法一样。一种简洁的解决方案如下:
z = {**x, **y}
关于 **x, **y
其实是对关键字参数的收集和展开,在 Python 的编程风格里,关键字参数等同于字典。详见 ython 进阶 —— 可变参数(*args, **kw)与参数收集的逆过程