Python 获取对象中每个键的类型列表

Python 获取对象中每个键的类型列表,python,list,dictionary,key,Python,List,Dictionary,Key,我开始学习使用iris数据集进行Python机器学习的基础知识。我使用以下代码加载数据集: from sklearn.datasets import load_iris iris_dataset = load_iris() 然后我开始查看每个键的形状,但有些键是列表,没有形状。因此,我用类型(iris\u数据集['feature\u names'])查看每个键的类型。但是,我不想对每个键重复此代码。是否可以获取此虹膜对象中每个关键点的类型?我试过这个,但显然不起作用: In [30]: typ

我开始学习使用iris数据集进行Python机器学习的基础知识。我使用以下代码加载数据集:

from sklearn.datasets import load_iris
iris_dataset = load_iris()
然后我开始查看每个键的形状,但有些键是列表,没有形状。因此,我用
类型(iris\u数据集['feature\u names'])查看每个键的类型。但是,我不想对每个键重复此代码。是否可以获取此虹膜对象中每个关键点的类型?我试过这个,但显然不起作用:

In [30]: type(iris_dataset.keys())
Out[30]: dict_keys
所以我用
type(iris\u数据集['feature\u names')查看每个键的类型。

注意:似乎您希望将所有值的类型分配给不同的键,而不是键本身的类型

您可以使用列表理解,为数据中的每个键应用
type
功能:

[type(iris_dataset[key]) for key in iris_dataset]
但是,假设
iris\u dataset
是某种类型的
dict
,键可能具有任何顺序,因此仅拥有类型列表还不能告诉您哪个类型对应于哪个键的值。相反,您可能更喜欢元组列表
(键,类型)


您可以将内置的类型映射到dict的键,并将
map()
包装到
list()
中以获取列表:


dict\u key\u types=list(map(type,iris\u dataset.keys())

您可以使用列表理解
[在iris\u数据集中为k键入(k)]
注意,假设iris\u数据集是一个字典,它会在for循环中自动返回其键,因此您无需显式调用
.keys()
尝试:
用于iris\u数据集中的键:打印(“type of{}:{}”。format(key,type(key))
@leaf我唯一能想到的是,对于第一个你立即知道的
iris\u数据集
是一个字典,而不是
列表
元组
@leaf,我同意。这是唯一的“优势”“我明白了。我更喜欢不太冗长的版本。Python2对此也没问题。@leaf它并没有多少“冗长”,它完全是在做别的事情。[type(key)…]`获取键的类型,而
[type(data[key])…]
获取值的类型,在我的印象中,这就是OP真正想要的。为任何混淆道歉,我相信这是不同键的所有值的类型。例如,
type(iris\u数据集['feature\u names'])
给出了
list
的值。我想对对象中的每个键重复一遍。@tobias_k抱歉,伙计。我不知道我怎么会错过。我没有注意到你在做什么。我现在觉得自己像个十足的白痴。
[(key, type(iris_dataset[key])) for key in iris_dataset]