Python:检查列表中的数据类型

马迪莫夫

有没有一种方法可以检查列表/字典中是否存在特定数据类型的实例,而无需显式检查每个元素/键?

我怀疑答案是否定的。但是,如果确实存在,我想它会类似于您可以使用in运算符搜索特定元素/键的方式,如下所示:

3 in [1, 2, 3] # => True

除非您要检查数据类型的实例,而不是某个特定值,例如:

int in [1,"a", 3.4] # => True

有任何想法吗?

巴罗姆

好吧in,实际上是的语法糖__contains__,它确实在列表的内容进行迭代

如果您想使用in来检查类型;您可以实现自己的数据结构(子类list)并重写__contains__以检查类型:

class MyList(list):
    def __contains__(self, typ):
        for val in self:
            if isinstance(val, typ):
                return True
        return False

x = MyList([1, 2, 'a', 3])

print float in x # False
print str in x   # True

您还可以利用any函数:

def __contains__(self, typ):
    return any(isinstance(val, typ) for val in self)

print int in MyList([1, "a", 3.4]) # True
print int in MyList(["a", 3.4])    # False

至于是否在不检查每个元素的情况下是否可行-不,不是。在最坏的情况下,您最终会检查每个元素。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在python中匹配数据类型

列表的数据类型

检查类型==列表在python中

从包含python 3中异构数据类型项的列表中仅获取正数

检查pandas中列的数据类型

如何在Python中检查字符串的“自然”数据类型?

检查列表中的每种数据类型,并对列表中的所有数字求和并打印它们

如何在csv python中检查每个列的数据类型?

如何在icCube中检查MDX测量的数据类型?

包含列表和其他数据类型的字典字符串,而无需更改python中的数据类型

如何在Haskell中检查自定义数据类型列表的长度?

在python中记录等效的数据类型

Python中的特定数据类型

Python Pandas:如何检查列表中元组值的数据类型?

在检查数据类型时在Java中解析数据

从JavaScript中输入的字符串检查数据类型

检查一列的数据类型,如果不是数字,则返回Python中的指示

如何从python中的输入检查每种数据类型?

在python中,如何更改列表的元素数据类型

用不同的数据类型对Python中的列表列表进行排序

在 Python 中验证数据类型

对象数据类型python中的矩阵

检查路径列表中的某些列并更改它们的数据类型?

在 SCSS 中迭代列表数据类型

如何检查列表中是否存在数据,我的列表有多种数据类型内容?

如何在 python pandas 中检查日期时间数据类型?

python列表中的多种数据类型

如何在 Python 中使用 if else 检查数据类型?

数据框列中的清理列表数据类型