>>> testlist
[1, 2, 3, 5, 3, 1, 2, 1, 6]
>>> [i for i,x in enumerate(testlist) if x == 1]
[0, 5, 7]
更新:
好的,如果你想要一个生成器表达式,我们会有一个生成器表达式。下面是列表理解,在for循环中:
>>> for i in [i for i,x in enumerate(testlist) if x == 1]:
... print i
...
0
5
7
现在我们要建造一个发电机。。。
>>> (i for i,x in enumerate(testlist) if x == 1)
<generator object at 0x6b508>
>>> for i in (i for i,x in enumerate(testlist) if x == 1):
... print i
...
0
5
7
非常漂亮的是,我们可以把它赋给一个变量,然后在那里使用它。。。
>>> gen = (i for i,x in enumerate(testlist) if x == 1)
>>> for i in gen: print i
...
0
5
7
嗯。这里有一个理解列表的答案,但它消失了。
这里:
示例:
更新:
好的,如果你想要一个生成器表达式,我们会有一个生成器表达式。下面是列表理解,在for循环中:
现在我们要建造一个发电机。。。
非常漂亮的是,我们可以把它赋给一个变量,然后在那里使用它。。。
想想我以前写FORTRAN。
下面呢?
如果不确定要查找的元素是否在列表中,可以添加一个初步检查,如
或者
或者“pythonic方式”,我不太喜欢这种方式,因为代码不太清晰,但有时效率更高
使用枚举:
相关问题 更多 >
编程相关推荐