A for loop is primarily used to traverse a list, but it picks the elements of the list one at a time. In particular, there is no need to store the whole list in memory for the loop to work properly. The mechanism that allows for loops to work without lists is that of iterators.
An iterable object produces objects to be passed to a loop. Such an object may be used inside a loop as if it were a list:
for element in obj: ...
The notion of iterable objects thus generalizes the idea of lists.
The simplest example of an iterable object is given by lists. The produced objects are simply the objects stored in the list:
L = ['A', 'B', 'C'] for element in L: print(element)
An iterable object need not produce existing objects. The objects may, instead, be produced on the fly.
A typical iterable is the object returned by the function range. This function works as if it would generate...