Я ищу питоновский путь итерации по первым элементам n
итерации ( upd: не список в общем случае, так как для списков все тривиально), и это очень важно сделать это как можно быстрее. Вот как я это делаю сейчас:
count = 0
for item in iterable:
do_something(item)
count += 1
if count >= n: break
Не кажется мне опрятным. Другой способ сделать это:
for item in itertools.islice(iterable, n):
do_something(item)
Это выглядит хорошо, вопрос в том, достаточно ли он достаточно для использования с некоторыми генераторами? Например:
pair_generator = lambda iterable: itertools.izip(*[iter(iterable)]*2)
for item in itertools.islice(pair_generator(iterable), n):
so_something(item)
Будет ли он работать достаточно быстро по сравнению с первым методом? Есть ли более простой способ сделать это?