带条件的 Python for 循环

标签 python

我是 Python 的新手(有 C++ 背景)。我的 Python 代码中有一个函数返回一些对象的数组(我没有任何控制权),如下所示:

def _get_object_array():
    object_array[]
    # Magically get array contents from somewhere
    # The objects have some fields like id, name etc.
    return object_array

然后在另一个函数中调用 _get_object_array()仅检索返回对象的 ID。

我有以下内容:

id_array = []
id_array = [x.id for x in _get_object_array()] #<--

但我不想要返回数组中所有对象的 ID。相反,我只想存储满足某些条件的数组元素的 id(例如 id 是偶数?)

有没有办法在标有 <-- 的同一行中执行此操作?像下面这样(顺便说一句,这只是一个伪代码)?

id_array = [if x.id % 2 == 0: x.id for x in _get_object_array()]

提前致谢。

/R

最佳答案

是的:相同的词,只是语法倒过来了。

id_array = [x.id for x in _get_object_array() if x.id % 2 == 0]

列表理解是惊人的,并且可以做比大多数人意识到的更多的工作; have a read of the relevant PEP .

关于带条件的 Python for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18627369/

相关文章:

python - 在两个 csv 文件中查找匹配项

python - 使用 fcntl 锁共享 mmap 协调?

python - 为什么 siunitx LaTeX 包会为 matplotlib 图形中的某些文本元素添加垂直偏移?

python - Django:在基于类的 View 中访问变量

给定 k 个分区的 Python 整数分区

python - 字节/十六进制到人类可读值?

Python PyAudio 安装问题(使用 PortAudio)

python - Discord.py 重写自定义错误

python - 在自定义 Django 日志记录处理程序中检索请求对象

python - 排序 np 数组与 python 列表会产生不同的结果