我是一名新的 Python 程序员,我正在阅读字典的 .get 方法,所以我尝试自己使用它。我尝试了一些非常简单的代码:
h = dict()
h.get('a', 1)
print (h)
解释器只返回:
{}
我知道 .get 方法在找不到您要求的键时会返回您提供的默认值,但它真的会在字典中创建新键和存储桶吗?如果是这样,为什么我的代码不返回新项目?谢谢
请您参考如下方法:
不,如果不存在,get 不会向字典添加条目。它不做任何修改。
>>> h = dict()
>>> h.get('a', 1)
1
>>> h
{}
从字典读取时,[] 也是如此;它会为不存在的键抛出错误。这与 C++ 不同,在 C++ 中,[] 将添加条目(如果条目不存在的话)。
>>> h['a']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'a'
>>> h
{}
但是要知道 Python 可以区分读取和写入。分配给一个不存在的键将创建它,即使读取一个不存在的键会引发异常。
>>> h['a'] = 1
>>> h
{'a': 1}
