Problem of function calls from map()

Diez B. Roggisch deets at nospam.web.de
Mon Aug 21 10:42:13 EDT 2006


Dasn wrote:

> 
> Hi, there.
> 
> 'lines' is a large list of strings each of which is seperated by '\t'
>>>> lines = ['bla\tbla\tblah', 'bh\tb\tb', ... ]
> 
> I wanna split each string into a list. For speed, using map() instead
> of 'for' loop. 'map(str.split, lines)' works fine , but...
> when I was trying:
> 
>>>> l = map(str.split('\t'), lines)
> 
> I got "TypeError: 'list' object is not callable".
> 
> To avoid function call overhead, I am not willing to use lambda function
> either. So how to put '\t' argument to split() in map() ?

You can't. Use a lambda or list-comprehension.


map(lambda l: l.split("\t"), lines) 

[l.split("\t") for l in lines]


Diez



More information about the Python-list mailing list