after single passm map(lambda *xrange( )for in mprint( for in mprint(iunlike listsone pass only (zip toosuch conversion isn' required in xbecause functions like zip return lists of results in xthoughthey return iterable objectsproducing results on demand this may break codeand means extra typing is required to display the results at the interactive prompt (and possibly in some other contexts)but it' an asset in larger programs --delayed evaluation like this conserves memory and avoids pauses while large result lists are computed let' take quick look at some of the new iterables in action the range iterable we studied the range built-in' basic behavior in the preceding in xit returns an iterable that generates numbers in the range on demandinstead of building the result list in memory this subsumes the older xrange (see the upcoming version skew note)and you must use list(range)to force an actual range list if one is needed ( to display results) :\codec:\python \python range( range( range returns an iterablenot list iter(rnext( next( next( make an iterator from the range iterable advance to next result what happens in for loopscomprehensionsetc list(range( )[ to force list if required unlike the list returned by this call in xrange objects in support only iterationindexingand the len function they do not support any other sequence operations (use listif you require more list tools)len( [ range also does len and indexingbut no others new iterables in python