Additionally, other Python functions that used to return lists now return iterators. This helps to save on system resources in that the iterator is not a static list of items (and so consuming RAM, etc.) but rather generates the next item in a series starting from the value of the last item issued. If the iterator has not been used before, it naturally starts with the first item.
In Python 3.0, map() and filter() return iterators, not lists. A list object can be created quickly, however, by passing the call through list(): list(map(x)).
Also, range() now returns an iterator like xrange() did in 2.5 and before. xrange() no longer exists in 3.0.
Finally, zip() no longer returns a list of tuples but an iterator that returns tuples.