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