Skip to main content
 首页 » 编程设计

带条件的 Python for 循环

2025年05月04日18oomusou

我是 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 .