gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 23:37:42 25 4
gpt4 key购买 nike

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

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

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

除非您要检查数据类型的实例而不是某个特定值,如下所示:
int in [1,"a", 3.4] # => True

有任何想法吗?

最佳答案

in实际上是 __contains__ 的语法糖, 其中 does iterate超过列表的内容。

如果您想使用 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

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

关于Python:检查列表中的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46919820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com