相关疑难解决方法(0)

快速迭代python中可迭代(不是列表)的前n项

我正在寻找一种迭代迭代迭代的第一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)

与第一种方法相比,它运行得足够快吗?有没有更简单的方法呢?

python performance iterator generator

12
推荐指数
2
解决办法
5855
查看次数

标签 统计

generator ×1

iterator ×1

performance ×1

python ×1