我想对列表中的所有元素应用一个函数,但我想实际更改元素(它们是对象),而不是查看结果。我认为这是使用 map()
或列表理解的问题。
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"
有什么方法可以做到这一点?
最佳答案
还有什么问题
for i in my_things:
i.size = "big"
您不想既不使用 map
也不使用列表推导,因为它们实际上会创建新列表。而且您不需要这些开销,对吗?
关于python - 如何将函数应用于列表的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10554470/