关于python:遍历list,如果list元素是某种类型,则打印”true”

Iterate through list and print 'true' if list element is of a certain type

本问题已经有最佳答案,请猛点这里访问。

我想知道在python中是否有一种方法可以循环遍历一个列表,并检查一个列表元素是否属于某种类型。在不正确的伪代码中类似这样。

1
2
3
4
5
listt = ['3109', datetime.timedelta(0, 240), datetime.timedelta(0, 60), '2411',
datetime.timedelta(0, 2160), '3109']
for i in listt:
    if type(i) is class.__str__:
        print('success')

是否可以检查这样的类型?此外,我发现自己无法用TimeDelta对象迭代列表,所以每次遇到一个类型错误时,我都必须排除它。此代码中未显示。

我感谢你的帮助。谢谢


另一种方法:

1
2
for i in listt:
    print(isinstance(i,str))

保存了一行,但结果是:

1
2
3
4
5
6
True
False
False
True
False
True

您可以使用isinstance执行此操作:

1
2
3
for i in listt:
    if isinstance(i,str):
        print('success')

输出:

1
2
3
success
success
success

请注意,伪代码几乎可以工作。以下内容也适用:

1
2
3
for i in listt:
    if type(i) is str:
        print('success')


您可以使用type()函数。

1
2
3
a = 3.14
if type(a) == str:
     pass

更多信息可在这里找到:

如何确定python变量的类型?