python 中字典dict[key],dict.get(key)和dict.setdefault(key)的区别

dict[key]

在Python中。我们一般对于字典取值会有dict[key]的方法取值,但是如果键key不存在,则会出现报错
例如:

>>>a = {'one':1,'two':2,'three':3}

>>>a['one']           
1

>>>a['four']           
Traceback (most recent call last):
  File "", line 1, in <module>
KeyError: 'four

因为 dict[key] 的方式在无法判断是否存在 key 的情况下会出现 KeyError ,所以 可以使用dict.get(key[,default]) 的方法。

dict.get(key[, default])

dict.get(key[,default]) 会查询字典中的key键,要是存在key键,则返回key键的值,要是没有key键,则返回 default, 若是没有 default,则返回 None。

例如:

>>> a.get('four')   # 返回None

>>> a.get('four','can not find four')   # 返回default
'can not find four'

>>>a  # 使用dict.get()后dict不变
{'one':1,'two':2,'three':3}

如果我们希望在获取字典中某个键的值,如果该键不存在,则为字典添加键值对,此时就可以用·**dict.setdefault(key[,default])**方法

dict.setdefault(key[,default])

dict.setdefault(key[,default]) 表示:如果dict中存在key,则返回key的值, 如果不存在key,则返回default的值,并且在dict中增加 key: default 键值对,如果 default 不存在,则在dict增加 key:None 的键值对。
例如

>>>a
{'one':1,'two':2,'three':3}

>>> a.setdefault('four',4)     #a 没有 'four'键,返回default, a 增加'four':4键值对
4
>>> a  
{'one': 1, 'two': 2, 'three': 3, 'four': 4}

>>> a.setdefault('five')     # a没有'five'键,没有default,返回None,a增加'five':None键值对
>>> a
{'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': None}

>>> a.setdefault('one')
1
>>> a
{'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': None}


你可能感兴趣的:(python)