python - 如何将函数应用于列表的元素?

标签 python list map python-2.7

我想对列表中的所有元素应用一个函数,但我想实际更改元素(它们是对象),而不是查看结果。我认为这是使用 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/

相关文章:

python - 如何在 Windows 中运行扭曲试用版?

java - 将 LinkedHashMap 中的所有键提取到列表中的方法

python - 如果命令是列表且包含 '&&' 或 '||',则 Popen 失败

python - 为什么这些列表方法(追加、排序、扩展、删除、清除、反转)返回 None 而不是结果列表?

python - Python 中的 For Loop 没有正确地将列表分成子集

python - list.index() 是否实现缓存

grails - 如何使用Grails在数据库中保存类别和相关子类别

functional-programming - Clojure:测试 map 操作中的每个值是否为真

python - 在 scikit-learn 中实现 K Neighbors Classifier 和 Linear SVM 以进行词义消歧

python - 从列表列表创建树形图