python
value = dict.get(key, default)
1. 避免 KeyError
当键不存在时,`get` 返回 `default` 值(或 `None`),而非引发异常。这使得代码更健壮,无需使用 `try-except` 或 `if-else` 处理缺失键。
2. 不修改原字典
`get` 仅返回值,不会向字典添加新键。若需自动插入默认值,应使用 `setdefault` 方法。
例如处理用户输入或解析动态数据时:
python
user_info = {'name': 'Alice', 'age': 30}
phone = user_info.get('phone', 'Not provided') 返回 'Not provided'
如统计单词频率时安全递增计数:
python
word_counts = {}
word = 'hello'
word_counts[word] = word_counts.get(word, 0) + 1 若不存在,初始化为0后加1
直接访问 `dict[key]` 在键缺失时引发 `KeyError`,而 `get` 返回默认值。
`setdefault` 在键不存在时会添加默认值到字典,`get` 仅返回值。
1. 默认值为可变对象
若默认值是列表或字典等可变对象,每次调用 `get` 会生成新对象。如需修改原字典,应使用 `setdefault`:
python
get 返回的列表不会添加到字典
items = d.get('key', []).append(1) 修改不会保存到字典
setdefault 会添加并返回列表
items = d.setdefault('key', []).append(1)
2. 无法区分缺失键与值为 `None`
若键存在但值为 `None`,`get` 返回结果与键缺失相同。需用 `key in dict` 检查键是否存在。
将:
python
if key in d:
value = d[key]
else:
value = default
替换为:
python
value = d.get(key, default)
`get` 只需一次哈希查找,优于 `in` 检查后再访问(两次查找)或异常处理。
`get` 是处理字典中可能缺失键的首选方法,提供安全、简洁的访问方式,尤其适合需要默认值的场景。在需要自动插入键时,可结合 `setdefault` 使用。
版权声明: 知妳网保留所有权利,部分内容为网络收集,如有侵权,请联系QQ793061840删除,添加请注明来意。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态
