获取迭代器的前n个元素的最简单方法

时间:2014-11-11 11:39:19

标签: python iterator generator

如何以最简单的方式获取迭代器(生成器)的第一个 n 元素?是否有比e更简单的东西。克。

def firstN(iterator, n):
  for i in range(n):
    yield iterator.next()

print list(firstN(it, 3))

我想不出更好的方式,但也许有?也许是一种功能形式?

3 个答案:

答案 0 :(得分:9)

使用itertools.islice()

from itertools import islice
print list(islice(it, 3))

这将从it产生接下来的3个元素,然后停止。

答案 1 :(得分:1)

不使用itertools

(t[0] for t in zip(L, range(3)))

答案 2 :(得分:0)

我现在就自己来了:

[ iterator.next() for i in range(3) ]

(如果您只需要另一个迭代器,则只需使用(…)而不是[…]。)

我认为这很适合我。