【发布时间】:2014-12-15 20:26:03
【问题描述】:
我有一个可以包含多个不同类型元素的列表。 我需要检查这个列表中是否有一个或多个特定类型的元素并获取它的索引。
l = [1, 2, 3, myobj, 4, 5]
我可以通过简单地遍历我的列表并检查每个元素的类型来实现这个目标:
for i, v in enumerate(l):
if type(v) == Mytype:
return i
是否有更 Pythonic 的方式来完成相同的结果?
【问题讨论】:
-
您需要该类型所有元素的索引,还是只需要第一个?
-
@BrenBarn 在我的具体情况下,我只需要第一个,但“通用”解决方案将不胜感激。
-
您可以使用推导式或生成器 exp - 但这意味着您必须遍历整个列表才能查看是否至少有一个。您的方法更有效 IMO。
-
if is instance(v, Mytype):会更好,否则这似乎很好。