加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

在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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读