David Isaac wrote: > I have been generally open to the proposal that list comprehensions > should replace 'map', but I ran into a need for something like > map(None,x,y) > when len(x)>len(y). I cannot it seems use 'zip' because I'll lose > info from x. How do I do this as a list comprehension? (Or, > more generally, what is the best way to do this without 'map'?)
If you know that len(x)>=len(y) and you want the same behavior as map() you can use itertools to synthesize a longer iterator >>> x = [1,2,3,4,5,6] >>> y = "Hi!" >>> from itertools import repeat, chain >>> zip(x, chain(y, repeat(None))) [(1, 'H'), (2, 'i'), (3, '!'), (4, None), (5, None), (6, None)] >>> This doesn't work if you want the result to be max(len(x), len(y)) in length - the result has length len(x). As others suggested, if you want to use map, go ahead. It won't disappear for a long time and even if it does it's easy to retrofit if needed. Andrew [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list