参加以下类(class):
class Foo:
def __init__(self,boolean):
bar = boolean
并让 foos
为 Foo
的实例列表
我想在列表理解中执行以下操作:
hold = []
for foo in foos:
foo.added = "I was added in iteration"
if foo.bar:
hold.append(some_function(foo.bar))
else:
hold.append(some_other_function(foo.bar))
注意:这实际上并不是它看起来的样子,我只需要做一个 if 和 else
因此,如果没有 foo.added
行,这就是我的解决方案:
[some_function(foo.bar) if foo.bar else some_other_function(foo.bar) for foo in foos]
如何在列表理解中添加属性?
原因:
我正在运行的代码将被频繁访问,因此一秒处理的每个片段都很重要。列表理解避免了 append
行,并且考虑到调用的数量,这可能非常有帮助
最佳答案
仅用于学习目的,切勿在实际代码中使用它。 正常循环是一个更好的选择:
[some_function() if foo.bar else some_other_function()
for foo in foos if not setattr(foo, 'added', "I was added in iteration")]
关于Python 类中的列表理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21196235/