how to use strip in map function [duplicate] how to use strip in map function [duplicate] python-3.x python-3.x

how to use strip in map function [duplicate]


strip is still just a variable, not a reference to the str.strip() method on each of those strings.

You can use the unbound str.strip method here:

my_list = list(map(str.strip, value.split(',')))

which will work for any str instance:

>>> value = '1, 2, 3'>>> list(map(str.strip, value.split(',')))['1', '2', '3']

In case you want to call a method named in a string, and you have a variety of types that all happen to support that method (so the unbound method reference wouldn't work), you can use a operator.methodcaller() object:

from operator import methodcallermap(methodcaller('strip'), some_mixed_list)

However, instead of map(), I'd just use a list comprehension if you want to output a list object anyway:

[v.strip() for v in value.split(',')]


You can also use a lambda to achieve your purpose by using:

my_list = map(lambda x:x.strip(), value.split(","))

where each element in value.split(",") is passed to lambda x:x.strip() as parameter x and then the strip() method is invoked on it.