mosscliffe schreef:
> for x,y in map("N/A", lista, listb): ########## Fails - Can not call a
> 'str'
>     print "MAP:", x, "<<x  y>>", y
> 
> def fillwith(fillchars):
>     return fillchars
> 
> for x,y in map(fillwith("N/A"), lista, listb): ########## Fails also -
> Can not call a 'str'
>     print "MAP:", x, "<<x  y>>", y

The first argument to map is a function, which is called with the items 
of the argument sequences. If the first argument is None, a default 
function is used which returns a tuple of the items. In the case that 
two input sequences are provided:

map(None, lista, listb)

is equivalent to:

def maketuple(a, b):
     return a, b
map(maketuple, lista, listb)

So what you want to do can be done with map like this:

def make_fill_missing(fillchars):
     def fill_missing(a, b):
         if a is None:
             a = fillchars
         if b is None:
             b = fillchars
         return a, b
     return fill_missing

map(make_fill_missing("N/A"), lista, listb))



-- 
If I have been able to see further, it was only because I stood
on the shoulders of giants.  -- Isaac Newton

Roel Schroeven
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to