我想知道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之外。此代码未显示。
感谢您的帮助。谢谢
答案 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
更多信息可以在这里找到: