Say I’ve got a list and I want to iterate over the first
n of them. What’s the best way to write this in Python?
Python lists are O(1) random access, so just:
for i in xrange(n): print list[i]
I’d probably use
itertools.islice (<- follow the link for the docs), which has the benefits of:
import itertools n = 2 mylist = [1, 2, 3, 4] for item in itertools.islice(mylist, n): print(item)
One downside is that if you wanted a non-zero start, it has to iterate up to that point one by one: https://stackoverflow.com/a/5131550/895245
Tested in Python 3.8.6.
The normal way would be slicing:
for item in your_list[:n]: ...
You can just slice the list:
>>> l = [1, 2, 3, 4, 5] >>> n = 3 >>> l[:n] [1, 2, 3]
and then iterate on the slice as with any iterable.