在Python中设置或更新字典条目代码模式
发布时间:2020-12-20 12:30:15 所属栏目:Python 来源:网络整理
导读:给定具有以下格式的字典: dict_list = {key0: [list0,list1],key1: [list0,...} 我目前正在以下列方式更新dict_list: for key in list_of_possibly_new_keys: if key not in dict_list.keys(): dict_list[key] = [list0,list1] else: dict_list[key][0].ex
给定具有以下格式的字典:
dict_list = {key0: [list0,list1],key1: [list0,...} 我目前正在以下列方式更新dict_list: for key in list_of_possibly_new_keys: if key not in dict_list.keys(): dict_list[key] = [list0,list1] else: dict_list[key][0].extend(list0) dict_list[key][1].extend(list1) 有没有办法使用本机构造(即没有其他方法)缩短此代码?我越来越多地在我的代码中遇到这种“设置或更新”模式的数据,并想知道是否有更简洁的方法来做到这一点. UPDATE /澄清: dict_list的实际内容示例: dict_list = {'John Solver': [['05/10/2013','05/14/2013','05/22/2013'],[20.33,40.12,10.13]]} 花车可以用美元代表John Solver的日常开支. 如果可能的话,我们希望继续使用两个长列表而不是许多日期 – 费用对,因为我们希望使用sum(dict_list [‘John Solver’] [1])方便地执行费用总和操作. 解决方法
你可以使用
dict.setdefault :
for key in list_of_possibly_new_keys: dict_list.setdefault(key,[]).extend([list0,list1]) 帮助dict.setdefault: >>> dict.setdefault? Type: method_descriptor String Form:<method 'setdefault' of 'dict' objects> Namespace: Python builtin Docstring: D.setdefault(k[,d]) -> D.get(k,d),also set D[k]=d if k not in D (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |