在python中给出一个或另一个条件的列表返回

时间:2017-05-21 20:15:18

标签: python

假设我有list = [1,2,3,'hello','bye',10,11,12,12.2,12.3]我想返回奇数索引中的元素(基于零)或者它们是整数。我们的想法是让代码尽可能简单。 谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用列表理解

[x for i,x in enumerate(lst) if i%2 == 1 or isinstance(x,int)]

这里我们使用enumerate(..)生成带有索引(从零开始)和元素的元组(i,x)。列表中的if过滤器:仅允许i%2 == 1(奇数索引)或xint实例的元素。对于这些元素,我们将x添加到结果中。

结果是:

>>> [x for i,x in enumerate(lst) if i%2 == 1 or isinstance(x,int)]
[1, 2, 3, 'hello', 10, 11, 12, 12.3]

不要使用list作为变量名称:它是类的名称,因此使用list,您将无法再使用list(..) 。这个答案适用于lst