假设我有list = [1,2,3,'hello','bye',10,11,12,12.2,12.3]
我想返回奇数索引中的元素(基于零)或者它们是整数。我们的想法是让代码尽可能简单。
谢谢!
答案 0 :(得分:2)
您可以使用列表理解:
[x for i,x in enumerate(lst) if i%2 == 1 or isinstance(x,int)]
这里我们使用enumerate(..)
生成带有索引(从零开始)和元素的元组(i,x)
。列表中的if
过滤器:仅允许i%2 == 1
(奇数索引)或x
为int
实例的元素。对于这些元素,我们将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
。