In brief
itertools.islice() selects part of an iterable without necessarily copying every value. list(islice(range(100), 3)) gives [0, 1, 2].
Useful to know
itertools.islice() selects part of an iterable without necessarily copying every value. list(islice(range(100), 3)) gives [0, 1, 2]. [1]
With a one-pass iterator, values read have been consumed. This matters during sequential imports: another iteration does not automatically restart the source. Lazy processing avoids intermediate results but does not itself define how the source can be replayed.
Sources
For further detail and to check the information: