我有一个列表列表。每个子列表包含自定义类的对象。我想要做的是将每个类对象的某个属性设置为 0。执行此操作的简单方法是双循环或类似的:
for subl in L:
for myObj in subL:
myObj.attr = 0
或者,我可以使用itertools.chain
:
for myObj in itertools.chain.from_iterable(L):
myObj.attr = 0
但是,我想知道我是否可以将所有内容都放在一行中。我可以使用类似生成器的结构来做到这一点吗?类似于以下内容:
(myObj.attr=0 for subl in L for myObj in subl)
现在这不会真正起作用,并且会引发 SyntaxError,但有可能发生类似的事情吗?