我发现束和字典的工作原理大致相同。就像有字典对象说
dict_1 = {"a":1, "b":2}
一堆物体说一堆
bunch_1 = Bunch(a=1, b=2)
两者具有相同的行为
答案 0 :(得分:7)
Bunch是Dict类的子类,并且像dict一样支持所有方法。另外,它允许您将键用作属性。
b = Bunch(a=1, b=2)
>>> b['b']
2
>>> b.b
2
答案 1 :(得分:0)
束类似于字典,但是它支持属性类型访问。
1)数据类型
Bunch在python 2中工作正常,但是在python 3中 这是行不通的!您从sklearn.utils导入Bunch
来自bundleclass import Bunch#python2 从sklearn.utils导入Bunch
2)初始化 束的初始化不需要'{}',而是具有您需要在束中的元素属性的显式函数。
d1={'a':1,'b':'one','c':[1,2,3],4:'d'}
b1=Bunch(a=1,b='one',c=[1,2,3])
还要注意这里Bunch的键是类的属性。它们必须是可变的,并且必须遵循变量约定。
3)访问密钥的值 这是两者之间的主要区别。
d1['a']
b1['a']
b1.a
在Bunch中,您可以使用点符号来访问属性。在字典中这是不可能的。
相似之处 字典和束都可以包含任何数据类型的值。但是密钥必须是可变的。 可以有嵌套的字典和嵌套的束。
捆绑实用程序
更多信息 与其他任何对象一样,请使用dir(Bunch object)了解更多信息。 请参阅此链接以了解更多信息:Bunch
如果您的目标是将一堆转换为数据框,则可以引用此链接https://github.com/viswanathanc/basic_python/blob/master/sklearn.utils.bunch%20to%20pandas%20Dataframe.ipynb