python字典get函数陷阱

本文揭示了Python字典get函数隐藏的陷阱,通过实例展示了正确使用get函数的方法,避免常见错误。
python字典get函数有一个很微妙的陷阱,代码如下:
>>> t={1:2}
>>> s={3:4}
>>> t.get(1,s[1])
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
KeyError: 1
>>> t.get(1,s.get(1,0))
2
    python字典的get函数在执行时,会同时检查执行get函数的字典,同时还会去获取默认值,最后再决定返回值。
Python 字典的 `get()` 函数是一个非常实用的方法,用于从字典中获取指定键对应的值。以下是其详细介绍: ### 使用方法 `get()` 方法的语法为:`dict.get(key, default=None)`,其中 `key` 是要查找的键,`default` 是可选参数,当键存在于字典中时返回该默认值,若提供则返回 `None` [^1]。 ### 功能介绍 1. **设置默认返回值**:当 `get()` 的键在字典存在时,会返回 `None` 或指定的默认内容。例如: ```python dict1 = {'key1': 'value1', 'key2': 'value2'} print(dict1.get('key3')) # 输出 None print(dict1.get('key3', '指定内容')) # 输出 指定内容 ``` 上述代码展示了 `get()` 方法在键存在时返回默认值的功能 [^3]。 2. **嵌套字典取值**:可以通过多次调用 `get()` 方法来获取嵌套字典中的值。虽然引用未详细给出示例,但原理是可以层层调用 `get()` 来访问嵌套结构。 3. **与 `dict[key]` 的区别**:`dict[key]` 在键存在时会抛出 `KeyError` 异常,而 `get()` 方法会报错,而是返回默认值,这使得代码更加健壮。 4. **统计元素计数**:`get()` 可以用于统计列表元素出现的个数,将统计结果保存到字典中。示例如下: ```python dict1 = {} list1 = ['¥', '¥', '¥', '$', '$', '$', '$', '$'] for i in list1: dict1[i] = dict1.get(i, 0) + 1 print(dict1) ``` 上述代码通过 `get()` 方法实现了对列表元素的计数功能 [^4]。 5. **单独使用 `get` 赋值**:当单独使用 `get` 赋值语句时,如果键是第一次出现,效果等同于赋值语句。例如: ```python cou = {'aa': 10, 'b': 1, 'c': 1, 'ddd': 1} e = 'e' cou['e'] = cou.get(e, 10) print(cou) # 输出 {'aa': 10, 'b': 1, 'c': 1, 'ddd': 1, 'e': 10} ``` 该示例展示了 `get()` 在赋值场景中的应用 [^5]。 ### 与 `setdefault()` 函数对比 Python 字典的 `setdefault()` 函数和 `get()` 方法类似,如果键存在于字典中,`setdefault()` 将会添加键并将值设为默认值 [^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值