我有几个具有相同数量条目的列表(每个列表指定一个对象属性):
property_a = [545., 656., 5.4, 33.]
property_b = [ 1.2, 1.3, 2.3, 0.3]
...
并列出相同长度的标志
good_objects = [True, False, False, True]
(可以很容易地用等效的索引列表代替:
good_indices = [0, 3]
生成新列表的最简单方法是什么 property_asel
, property_bsel
, … 仅包含 True
条目或索引指示的值?–
property_asel = [545., 33.]
property_bsel = [ 1.2, 0.3]
原文由 fuenfundachtzig 发布,翻译遵循 CC BY-SA 4.0 许可协议
你可以只使用 列表理解:
要么
后者更快,因为
good_indices
property_a
长度少,假设good_indices
-f 是预先生成的,而不是 -编辑:第一个选项等同于
itertools.compress
自 Python 2.7⁄3.1 起可用。请参阅 @Gary Kerr 的回答。