Python函数setdefault()

Python的setdefault()函数用于在字典中查找键,如果不存在则添加键并设置默认值。该方法返回字典中键对应的值,若键不存在则返回默认值。在处理数据库查询结果并构建新字典时,setdefault()函数非常实用,能确保所有字段都有初始值。

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

描述:

Python 字典 setdefault() 函数和get() 方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值。

注意:setdefault() 返回的键如果不在字典中,会添加键(更新字典)

语法:

dict.setdefault(key,default = None)

参数
key - 这是要搜索的键。
default - 这是在没有找到键的情况下则返回此值。
返回值

此方法返回字典中可用的键值,如果给定键不可用,则返回提供的默认值。

案例:

>>>dict ={'name':'小明','sex':'男'}

>>> print "Value :%s" % dict.setdefault('name','无') #存在键name

Value :小明

>>> print "Value :%s" % dict.setdefault('age','0')#不存在键age

Value :0

>>> dict

{'age': '0', 'name': '\xd0\xa1\xc3\xf7', 'sex': '\xc4\xd0'}#age加了进去,字典是无序的。

实例:

需求:通过过滤条件查数据库,查出来了部分字段的值,放入一个字典,这个字典的key为student_id,将这些值放入一个新的字典,key相同,没有的字段赋值默认值,

一共有下面这么多字段,

['status','thirty_minute_time','five_minute_time','first_attend_time']

res_dict为查出来的数据,是一个字典,key为student_id

举个例子,比如res_dict={'123456':{'status':3}}

final_dict={}

for key in res_dict:
            final_dict.setdefault(key,{'status':-1,'thirty_minute_time':-1,'five_minute_time':-1,'first_attend_time':-1})
            if 'status' in res_dict[key]:
                final_all_dict[key]['status']=res_dict[key]['status']
            if 'thirty_minute_time' in res_dict[key]:
                final_all_dict[key]['thirty_minute_time']=res_dict[key]['thirty_minute_time']
            if 'five_minute_time' in res_dict[key]:
                final_all_dict[key]['five_minute_time']=res_dict[key]['five_minute_time']
            if 'first_attend_time' in res_dict[key]:
                final_all_dict[key]['first_attend_time']=res_dict[key]['first_attend_time']

 处理之后 

final_dict={'123456':{'status':3,'thirty_minute_time':-1,'fiva_minute_time':-1,'first_attend_time':-1}} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值