您可以只使用列表推导:
property_asel = [val for is_good, val in zip(good_objects, property_a) if is_good]
要么
property_asel = [property_a[i] for i in good_indices]
后者要快一些,因为它good_indices
的长度小于的长度property_a
,并假设good_indices
它们是预先计算的,而不是即时生成的。
:第一个选项等效于itertools.compress
Python 2.7 / 3.1之后的版本。请参阅@Gary Ker的答案。
property_asel = list(itertools.compress(property_a, good_objects))