关于类的Python列表理解

时间:2014-01-17 21:28:30

标签: python list-comprehension

参加以下课程:

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行,并且考虑到调用的数量,这可能非常有用

1 个答案:

答案 0 :(得分:3)

仅出于学习目的,永远不要在实际代码中使用它。 正常循环是一个更好的选择

[some_function() if foo.bar else some_other_function() 
         for foo in foos if not setattr(foo, 'added',  "I was added in iteration")]