Обнаружение самого дешевого способа создания независимых итераторов

Предположим, я пишу функцию, принимающую итерацию, и моя функция хочет быть независимой от того, является ли эта итерация на самом деле итератором или нет.

(Это обычная ситуация, верно? Я думаю, что в основном все функции itertools написаны таким образом. Возьмите итерируемый объект, верните итератор.)

Если я позвоню, например, itertools.tee(•, 2)на объекте, и это еще не итератор, что, по-видимому, означает, что было бы дешевле просто вызвать iterдважды, чтобы получить два моих независимых итератора. Достаточно ли умны функции itertools, чтобы знать это, и если нет, то как лучше всего избежать ненужных затрат таким образом?

0 ответов

Другие вопросы по тегам