如果列表元素属于某种类型,则遍历列表并显示“ true”

时间:2018-12-11 00:55:30

标签: python

我想知道python中是否有一种方法可以遍历列表并检查list元素是否为某种类型。这样的东西使用不正确的伪代码。

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对象的列表,因此每次遇到一个TypeError时都不得不除TypeError之外。此代码未显示。

感谢您的帮助。谢谢

3 个答案:

答案 0 :(得分:2)

您可以使用isinstance

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

输出:

success
success
success

请注意,您的伪代码几乎有效。以下内容也可以工作:

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

答案 1 :(得分:2)

另一种isinstance方式:

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

保存了一行,但结果是:

True
False
False
True
False
True

答案 2 :(得分:1)

您可以使用type()函数。

a = 3.14
if type(a) == str:
     pass

更多信息可以在这里找到:

How to determine a Python variable's type?