如何给Python dict设置默认的返回值(value)

本文详细解析了Python中字典的两种常用操作方法:get与setdefault的区别及应用场景,同时介绍了collections模块中的defaultdict容器使用技巧,展示了如何通过lambda函数为字典提供默认值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 两种方法:

dict.get(key , default=None)

dict.setdefault(key, default=None)

  • 以上二者调用返回的结果完全相同,都是当dict中不含有该键时,返回后面你给的默认值;
  • 但二者也有区别——get方法不会改变dict,而setdefault方法会在一次调用后向dict中添加这个之前不存在的键值对

请见代码:

dicts = {5:'Garnett',11:'Irving',0:'Tatum',7:'Brown',20:'Hayward'}
dicts.get(36,'Smart')
>>> 'Smart'
dicts
>>> {5: 'Garnett', 11: 'Irving', 0: 'Tatum', 7: 'Brown', 20: 'Hayward'}  # dicts没有变化,我钢哥没被加进来

dicts.setdefault(42,'Horford')
>>> 'Horford'
dicts
>>> {5: 'Garnett',
     11: 'Irving',
     0: 'Tatum',
     7: 'Brown',
     20: 'Hayward',
     42: 'Horford'}
       # dicts被改变了,伙夫被加了进来

defaultdict

如上,在Python的collections模块中,有defaltdict容器,这个容器可以在该容器中不含有某个键的时候直接返回你默认设置的值

代码如下:

from collections import defaultdict

dict1 = defaultdict(lambda :'Rozier')
dict1[12]
>>> 'Rozier'

dict1[13]
>>> 'Rozier'

dict1
>>> defaultdict(<function __main__.<lambda>()>, {13: 'Rozier', 12: 'Rozier'})

如代码所示,defaultdict可以接收一个函数,这个函数专门用于对不存在于defaultdict中的key进行处理,得到初始化的value 。我们这里传入了最简单的一个函数,不论传入的key为何值,返回值均是“Rozier”(返回一个太子)。所以后面可见,不论传入的时12还是13,结果都会返回一个初始化的默认值‘Rozier’,而不会抛出异常。同时defaultdict中也存入了者两组键值对。

 

### Python 字典的基础概念 Python 中的字典是一种内置的数据结构,它存储键值对(key-value pairs)。字典中的键是唯一的,并且不可变(通常为字符串或数字),而对应的值可以是任何数据类型。创建和操作字典非常直观。 #### 创建字典的方法 可以通过大括号 `{}` 或 `dict()` 构造函数来创建字典: ```python my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'} another_dict = dict(name='Bob', age=30, city='Los Angeles') ``` 上述两种方法都可以用来定义相同的字典[^1]。 #### 访问字典元素 通过键访问字典中的值是一个常见的操作。如果尝试访问不存在的键,则会引发 KeyError 错误。为了避免这种情况,可以使用 `.get()` 方法: ```python value = my_dict['name'] # 返回 Alice safe_value = my_dict.get('non_existent_key') # 返回 None ``` `.get()` 方法允许指定默认返回值,在键缺失的情况下不会抛出异常。 #### 修改和更新字典 向字典中添加新项或者修改现有项的操作也非常简单: ```python my_dict['age'] = 26 # 更新已有键的值 my_dict['job'] = 'Engineer' # 添加新的键值对 ``` 删除字典中的某个键及其对应值可使用 `del` 关键字或 `.pop()` 方法: ```python del my_dict['city'] # 删除键 'city' removed_item = my_dict.pop('job') # 移除并返回被移除的值 ``` #### 遍历字典 遍历字典有多种方式,可以根据需求选择不同的方法: ```python for key in my_dict.keys(): print(key) for value in my_dict.values(): print(value) for key, value in my_dict.items(): print(f"{key}: {value}") ``` 以上代码展示了如何分别获取字典的所有键、所有值以及键值对。 #### 将 Pandas Series 转换为字典 Pandas 的 Series 对象本质上类似于带有标签索引的一维数组,也可以轻松转换成字典形式: ```python import numpy as np import pandas as pd arr = np.array([1, 2, 3]) index_labels = ['a', 'b', 'c'] series = pd.Series(arr, index=index_labels) dictionary_form = series.to_dict() print(dictionary_form) # 输出: {'a': 1, 'b': 2, 'c': 3} ``` 此过程利用了 Pandas 提供的 `.to_dict()` 方法完成转换[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_illusion_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值