dictionary字典

2020-10-16  本文已影响0人  lalalasa

dict.get(key[, default])
VS
dict[key]

>>> dict = {"a":1,"b":2}

dict.get()

>>> dict.get("a")  # exist key
1
>>> dict.get("c","not exist")  # not exist key
'not exist'

dict[key]

>>> dict["c"]  # not exist key
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'c'

dict[key]遇到key不存在时报错,而get方法则可以设置默认值,特别是需要操作返回值时,get()方法更实用

setdefault(key[, default])

>>> dict = {"a":1,"b":2}
>>> dict.setdefault("a")  # exist key
1
>>> dict.setdefault("c")  # not exist key
>>> dict
{'a': 1, 'b': 2, 'c': None}  # dict add dict["c"]=None
>>> dict.setdefault("c", -1)  # exist key, default = -1
>>> dict
{'a': 1, 'b': 2, 'c': None}  # no added
>>> dict.setdefault("d", -1)  # not exist key, default =-1
-1
>>> dict
{'a': 1, 'b': 2, 'c': None, 'd': -1}  # dict add dict["d"]=-1

如果dict存在该key,则返回key对应的Value
如果dict不存在该key,则插入key,Value=default,default默认为None

update([other])

>>> dict = {"a":1,"b":2}
>>> dict.update(b=1, c=2)
>>> dict
{'a': 1, 'b': 1, 'c': 2}
>>> dict.update({"c":4})
>>> dict
{'a': 1, 'b': 1, 'c': 4}

如果key存在dict,则修改key的对应值
如果key不存在dict,则dict新增该键值对
可简单理解为:有则修改,无则增加

d2 = d1

>>> d1
{'a': 1, 'b': 2}
>>> d2=d1
>>> d2["b"]=1
>>> d2
{'a': 1, 'b': 1}
>>> d1
{'a': 1, 'b': 1}

修改d2的值,d1的值也会变,原因是d2=d1是把d1的地址赋给了d2,两个变量指向同一个地址,因此d2修改了值,d1的值也会跟着变

d2 = d1.copy()

>>> d1
{'a': 1, 'b': 2}
>>> d2=d1.copy()
>>> d2["b"]=1
>>> d1
{'a': 1, 'b': 2}
>>> d2
{'a': 1, 'b': 1}
>>>

修改d2的值,d1的值不会跟着变

d | other
(New in version 3.9.)

>>> d1={'a': 1, 'b': 2}
>>> d2={'a': 1, 'b': 1, 'c': 4}
>>> d1 | d2
{'a': 1, 'b': 1, 'c': 4}

d |= other
New in version 3.9.

>>> d1={'a': 1, 'b': 2}
>>> d2={'a': 2, 'c': 2}
>>> d1 |= d2
>>> d1
{'a': 2, 'b': 2, 'c': 2}
>>> d2
{'a': 2, 'c': 2}

参考

上一篇 下一篇

猜你喜欢

热点阅读