python中defaultdict 的用法
注意 defaultdict接收的是一个函数,而非固定值,比如defaultdict(list)而非defaultdict([])
创建一个具有空张量作为默认值的defaultdict
,可以这样做:
from collections import defaultdict import torch # 创建一个defaultdict,其中默认值是一个空张量 a = defaultdict(lambda: torch.tensor([])) # 添加一些示例数据 a['key1'] = torch.tensor([1, 2, 3]) a['key2'] = torch.tensor([4, 5, 6]) # 访问一个不存在的键,将返回空张量作为默认值 default_value = a['key3'] # default_value将是一个空张量
defaultdict:
当我使用普通的字典时,用法一般是dict={},添加元素的只需要dict[element] =value即,调用的时候也是如此,dict[element] = xxx,但前提是element字典里,如果不在字典里就会报错,如:
这时defaultdict就能排上用场了,defaultdict的作用是在于,当字典里的key不存在但被查找时,返回的不是keyError而是一个默认值,这个默认值是什么呢,下面会说
如何使用defaultdict
defaultdict接受一个工厂函数作为参数,如下来构造:
from collections import
dict =defaultdict( factory_function)
这个factory_function可以是list、set、str等等,作用是当key不存在时,返回的是工厂函数的默认值,比如list对应[ ],str对应的是空字符串,set对应set( ),int对应0,如下举例:
from collections import defaultdict s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)] d = defaultdict(list) for k, v in s: d[k].append(v) a = d.items() print(a) b = sorted(d.items()) print(b) """ 结果: dict_items([('yellow', [1, 3]), ('blue', [2, 4]), ('red', [1])]) [('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])] """
当字典中没有的键第一次出现时,default_factory自动为其返回一个空列表,list.append()会将值添加进新列表;再次遇到相同的键时,list.append()将其它值再添加进该列表。
这种方法比使用dict.setdefault()更为便捷,dict.setdefault()也可以实现相同的功能。
本文来自博客园,作者:海_纳百川,转载请注明原文链接:https://www.cnblogs.com/chentiao/p/17118180.html,如有侵权联系删除
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2022-09-12 YOLOv5中的CSP结构
2022-09-12 python内置函数eval的用法和错误封装
2022-09-12 python 中的%S用法
2022-09-12 pycharm返回上一次光标位置
2022-09-12 python 函数参数引用之传值/传址和copy/deepcopy
2022-09-12 python多个等于号的表达式 a=b=c=d...=X
2022-09-12 python中Path详细用法