如何编写Python的upd函数实现列表数据更新志愿者服务次数字典
志愿服务次数更新函数实现
首先你当前编写的函数头存在参数缺失问题,按需求需要同时传入原始志愿者次数字典和新增服务记录列表两个参数,所以需要先修正函数定义。
完整实现代码
基础变量定义
# 原始志愿者服务次数字典 vol_dict = {'Andrew':5, 'Brian':3, 'Clive':2, 'David':4} # 本次待更新的服务记录列表 ulist = ['Brian', 'David', 'Peter']
upd函数编写
这里用字典的get()方法简化判断逻辑,不需要额外写分支判断:
def upd(vol_dict, add_lst): for name in add_lst: # 键存在则取原有值,不存在取默认值0,统一加1即可符合规则 vol_dict[name] = vol_dict.get(name, 0) + 1
运行效果演示
# 调用更新函数 upd(vol_dict, ulist) # 输出更新后的字典 print(vol_dict)
运行输出结果
{'Andrew': 5, 'Brian': 4, 'Clive': 2, 'David': 5, 'Peter': 1}
补充说明
- 字典属于Python可变对象,函数内对
vol_dict的修改会直接作用于原始字典,不需要额外返回修改后的字典,如有需要也可以在函数末尾增加return vol_dict语句支持链式调用 - 如果习惯写显式判断逻辑,也可以将函数内部替换为如下写法,效果完全一致:
def upd(vol_dict, add_lst): for name in add_lst: if name in vol_dict: vol_dict[name] += 1 else: vol_dict[name] = 1
内容的提问来源于stack exchange,提问作者d212digital
相关产品推荐
相关产品推荐

