I am trying to call object.method()
on a list of objects.
I have tried this but can't get it to work properly
newList = map(method, objectList)
I get the error method is not defined
but I know that is because it is a method of the objects and not a local function.
Is there a way to do this with map()
, or a similar built in function? Or will I have to use a generator/list comprehension?
Could you also explain the advantages or contrast your solution to using this list comprehension?
newList = [object.method() for object in objectList]
newList = map(method, objectList)
would call method(object)
on each object
in objectlist
.
The way to do this with map would require a lambda function, e.g.:
map(lambda obj: obj.method(), objectlist)
A list comprehension might be marginally faster, seeing as you wouldn't need a lambda, which has some overhead (discussed a bit here).