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
# some collection of 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:
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?