sklearn的Bunch类型,和普通的dict字典类型,有什么区别?
发布于 作者:苏南大叔 来源:程序如此灵动~

Bunch
英文的解释是“束; 扎; 大量”等意思,当然,它作为sklearn
里面的自定义数据类型。目前,还不知道其正式的类型中文翻译是什么。Bunch
类型是基于dict
字典类型的,所以,两者有何异同呢?

大家好,这里是苏南大叔的“程序如此灵动”博客,记录苏南大叔的一些代码感悟。本文描述对sklearn
中新出现的bunch
数据类型的理解。测试环境:win10
,python@3.11.0
,pip@23.0.1
,scikit-learn@1.2.2
。
Bunch
类型定义
sklearn
中的该类型的定义文件是:
里面是这么定义的:

所以根据下面的这篇文章所写的内容,Bunch
类是继承自dict
类型的。链接如下:
Bunch
和dict
的不同之处

首先,定义不同:
Bunch
的key
不用双引号,和value
之间使用等号连接。dict
的key
必须使用双引号括上,和value
之间使用冒号连接。
其次,使用方式不同:
Bunch
可以使用.attr
访问数据,还可以使用["attr"]
访问数据。dict
类型只可以使用["attr"]
才能访问数据。
Bunch
和dict
的相同之处

如果忽略定义方式不同,以及使用方式的小小区别之外。其它的dict
类型可以的操作,Bunch
类型一样都可以使用。
相关文章
总结
可见:dict
类型可以做的操作,Bunch
类型都可以操作。但是,Bunch
比dict
类型最明显的区别是:Bunch
可以使用.attr
访问数据,还可以使用["attr"]
访问数据。但是dict
类型只可以使用["attr"]
才能访问数据。


