Skip to main content
 首页 » 编程设计

python之通过列表理解修改属性

2025年05月04日11dflying

如果我有一个简单的类

class test(object): 
    def __init__(self): 
        self.prop=False 

为什么不行

l=[a,b,c] 
[c.prop=True for c in l] 
 
for c in l: 
    print c.prop 

它显示无效的语法。但是常规循环有效

for c in l: 
     c.prop=True 

知道为什么列表理解在这里失败了吗?

请您参考如下方法:

Python 中的列表推导式用于构建列表。理解循环遍历一个可迭代对象并计算一个表达式 - 它将表达式的结果附加到它正在构建的列表中。

这显然不适用于语句——它们的计算结果是什么?他们会返回什么值(value)?因此 Python 无法构建列表,这是一个 SyntaxError。这也适用于三元运算符之类的东西。

当您不需要构建列表时,或者当您想要执行遍历列表的操作时,请使用 for 循环。