"Raymond Hettinger" <[EMAIL PROTECTED]> wrote: > [EMAIL PROTECTED] > > > > 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, ...). > > [EMAIL PROTECTED] > > 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.
"lazily evaluated inputs" is exactly what I was pointing out and what make your izip_longest() above not the same as map(None,...), and hence, your conclusion invalid. Specifically.... def izip_longest(*args): return iter(map(None, *args)) f1 = file ("test.dat") f2 = file ("test.dat") it = izip2 (f1, f2) while 1: h1, h2 = it.next () print h1.strip(), h2 izip2() in the above code is a "real" izip_longest based on a version posted in this thread. > test.py 3347 3347 -3487 -3487 2011 2011 239 239 ... Replace izip2 in the above code with your izip_longest > test.py [wait, wait, wait,... after a few minutes type ^c, nothing happens, close window]. I don't think your izip_longest is at all equivalent to the proposed izip, and thus there may well be uses cases for izip that aren't represented by imap(None,...) use cases, which is what I said. That is, I might have a use case for izip which I would never even consider map() for. -- http://mail.python.org/mailman/listinfo/python-list