gpt4 book ai didi

python - dict.pop与dict.get的默认返回值

转载 作者:行者123 更新时间:2023-12-04 22:02:43 27 4
gpt4 key购买 nike

我试图找出将None作为dict.get的默认值但没有dict.pop的默认值(未指定默认值)的原因是什么

{}.get('my_key')
# output: None
{}.pop('my_key')
# output: KeyError: 'my_key'

我在想没有 dict.pop的隐式默认值的原因是因为您可能具有带有 None值的键,因此,为了避免混淆,无论您的键是否在字典中, dict.pop的隐式默认值都不会很有道理。但是再一次,这个解释对于 dict.get也应该是有效的,但不是:
{'my_key': None}.get('my_key')
# output: None
# but doesn't tell you if the key is truly in the dictionary or not

最佳答案

我对此的看法是允许将dict与其他
上下文。

使用dict.get(key),即使键不是
存在于dict中。可以提供默认值。没有异常(exception)。dict不变。

使用dict.pop(key),只有当key存在于dict,否则引发异常。我们可以避免异常(exception)
通过提供默认值。 dict已更改。

为了测试key的存在,我们使用key in dict

对于dict.pop,这提供了类似于list.pop的界面,set.popdeque.pop提供。

简而言之,"principle of leastsurprise"的一个很好的例子
和Python的Zen(导入此):)

关于python - dict.pop与dict.get的默认返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59843346/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com