Python 类中的列表理解

标签 python list-comprehension

参加以下类(class):

class Foo:
    def __init__(self,boolean):
        bar = boolean

并让 foosFoo 的实例列表

我想在列表理解中执行以下操作:

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/

相关文章:

python - python2.7 中仍然有 "__init__() keywords must be strings"- ReviewBoard

python - 为什么 Python 列表理解过滤器对 if-else 有不同的语法

python - 使用字典的嵌套列表理解

python - 使用带有列表理解的 python 关键字

python - Zapier 频繁超时 10.01 秒

python - 尝试使用 python 镜像安装 Fiona 时 Docker 构建失败

python - Tkinter 根配置

scala - Scala列表理解

python - 合并不同长度的python列表

python - 使用 PIL 将 emf 转换为 jpeg 在 python 中有效,但在 pyinstaller 打包的 exe 中无效