首页 > 解决方案 > 在一个对象中打印所有属性的类型 - 最好的方法?

问题描述

我找到了这篇文章,它回答了这个问题,但我认为应该有一种更简单的方法来做到这一点。

这是我的示例:从对象 boston,我想知道属性是字符串还是数组。a) 给我名字。b) 显然不是我想要的信息 c) 给了我想要的信息 但我认为选项 c) 过于复杂,应该有更清洁的方法来做到这一点。有任何想法吗?

from sklearn.datasets import *
boston = load_boston()

a= dir(boston)
b=[type(x) for x  in boston]
c=[type(getattr(boston, name)).__name__ for name in dir(boston) ]

print(a,"\n", b,"\n",c)

出去:

['DESCR', 'data', 'feature_names', 'filename', 'target'] 
[<class 'str'>, <class 'str'>, <class 'str'>, <class 'str'>, <class 'str'>] 
['str', 'ndarray', 'ndarray', 'str', 'ndarray']

标签: pythonobjecttypesattributes

解决方案


print([x for x in boston])
print([type(boston[x]) for x in boston])

出去:

['data', 'target', 'feature_names', 'DESCR', 'filename']
[<class 'numpy.ndarray'>, <class 'numpy.ndarray'>, <class 'numpy.ndarray'>, <class 'str'>, <class 'str'>]

推荐阅读