我正在寻找一种迭代迭代迭代的第一n
项的pythonic方法(upd:在常见情况下不是列表,因为列表事情是微不足道的),并且尽可能快地执行此操作非常重要.这是我现在这样做的方式:
count = 0
for item in iterable:
do_something(item)
count += 1
if count >= n: break
Run Code Online (Sandbox Code Playgroud)
对我来说似乎并不整洁.另一种方法是:
for item in itertools.islice(iterable, n):
do_something(item)
Run Code Online (Sandbox Code Playgroud)
这看起来不错,问题是它是否足够快与一些发电机一起使用?例如:
pair_generator = lambda iterable: itertools.izip(*[iter(iterable)]*2)
for item in itertools.islice(pair_generator(iterable), n):
so_something(item)
Run Code Online (Sandbox Code Playgroud)
与第一种方法相比,它运行得足够快吗?有没有更简单的方法呢?