与itertools.dropwhile相反(如何在N次迭代后停止生成器)

时间:2015-10-21 16:04:02

标签: python generator itertools

有一种简单的方法可以在N循环后停止迭代器吗?我当然可以这样写:

for i, val in enumerate(gen()):
    if i > N: break

但我想写点像

for val in stop_after(gen(), N):
    ...

我试过itertools.dropwhile,但似乎反其道而行之。当然我可以用反逻辑重写itertools.dropwhile,但我想知道是否已经实现了某些东西。

2 个答案:

答案 0 :(得分:2)

使用<Style TargetType="DataGridCell"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type DataGridCell}"> <Grid> <Grid.LayoutTransform> <TransformGroup> <RotateTransform Angle="90" /> <MatrixTransform Matrix="-1, 0, 0, 1, 0, 0" /> </TransformGroup> </Grid.LayoutTransform> <ContentPresenter/> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style>

islice

假设你的例子是:

for val in itertools.islice(gen(), N):
    ....

答案 1 :(得分:0)