How to take the first N items from a generator or list?
Slicing a list
top5 = array[:5]
- To slice a list, there's a simple syntax:
array[start:stop:step]
- You can omit any parameter. These are all valid:
array[start:]
,array[:stop]
,array[::step]
Slicing a generator
import itertools
top5 = itertools.islice(my_list, 5) # grab the first five elements
You can't slice a generator directly in Python.
itertools.islice()
will wrap an object in a new slicing generator using the syntaxitertools.islice(generator, start, stop, step)
Remember, slicing a generator will exhaust it partially. If you want to keep the entire generator intact, perhaps turn it into a tuple or list first, like:
result = tuple(generator)
import itertools
top5 = itertools.islice(array, 5)