Real-world use cases for map's None fill-in feature?

Raymond Hettinger python at rcn.com
Thu Jan 12 04:37:15 EST 2006


[rurpy at yahoo.com]
> > > How well correlated in the use of map()-with-fill with the
> > > (need for) the use of zip/izip-with-fill?

[raymond]
> > Close to 100%.  A non-iterator version of izip_longest() is exactly
> > equivalent to map(None, it1, it2, ...).

[rurpy at yahoo.com]
> If I use map()
> I can trivially determine the arguments lengths and deal with
> unequal length before map().  With iterators that is more
> difficult.  So I can imagine many cases where izip might
> be applicable but map not, and a lack of map use cases
> not representative of izip use cases.

You don't seem to understand what map() does.  There is no need  to
deal with unequal argument lengths before map(); it does the work for
you.  It handles iterator inputs the same way.  Meditate on this:

    def izip_longest(*args):
        return iter(map(None, *args))

Modulo arbitrary fill values and lazily evaluated inputs, the semantics
are exactly what is being requested.  Ergo, lack of use cases for
map(None,it1,it2) means that izip_longest(it1,it2) isn't needed.

Raymond




More information about the Python-list mailing list