How to apply function to elements of a list without creating a new list?
list, loops, python
Solution
And what's wrong with
for i in my_things:
i.size = "big"
You don't want to use neither `map` nor list comprehansion because they actually create new lists. And you don't need that overhead, do you?
Problem
I want to apply a function to all elements in the list, but I want to actually change the elements (which are objects), not view results. I think this is the problem with using `map()` or list comprehensions. ``` class Thing(object): pass # some collection of things my_things # they are all big... # produces SyntaxError: invalid syntax [i.size = "big" for i in my_things] # produces SyntaxError: lambda cannot contain assignment map(lambda i: i.size="big", [i for i in my_things]) # no error, but is it the preferred way? for i in my_things: i.size="big" ``` What is the way to do this?