如果列表元素属于某种类型,则遍历列表并打印“真”[重复]

Posted

技术标签:

【中文标题】如果列表元素属于某种类型,则遍历列表并打印“真”[重复]【英文标题】:Iterate through list and print 'true' if list element is of a certain type [duplicate] 【发布时间】:2019-05-11 22:57:42 【问题描述】:

我想知道 python 中是否有一种方法可以遍历列表并检查列表元素是否属于某种类型。像这样的错误伪代码。

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 时我都必须排除。此代码中未显示。

感谢您的帮助。谢谢

【问题讨论】:

你可以使用isinstance 这个论坛可能会有所帮助:***.com/questions/402504/… 【参考方案1】:

您可以使用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')

【讨论】:

谢谢!我不敢相信我忘记了这一点。 我有点超前了。【参考方案2】:

另一种isinstance方式:

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

保存了一行,但结果是:

True
False
False
True
False
True

【讨论】:

【参考方案3】:

你可以使用 type() 函数。

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

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

How to determine a Python variable's type?

【讨论】:

以上是关于如果列表元素属于某种类型,则遍历列表并打印“真”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

遍历字典列表并 1) 将流值与流列元素进行比较 2) 如果匹配,则附加一个带有数据的新列表

如果索引列表遍历不匹配,则返回“Nothing”

如果第一个元素相同,则添加两个子列表

复合数据类型

数组与集合的区别?

如何遍历地图列表并在颤动列表视图中显示文本小部件?