Python:取决于项目的特定值的项目的子列表,例如,布尔

时间:2011-07-20 11:01:18

标签: python list boolean sublist

我有一个类似对象的列表,其中一些有一定的值集,这里更具体地说是一个布尔标志:

myList = [WhatEver(..., True, ...), WhatEver(..., True, ...), WhatEver(..., False, ...), WhatEver(..., True, ...), WhatEver(..., False, ...), ...]

在Python中是否有一种无痛的方法来获取其值设置为特定值的项的子列表,这里是True还是False

2 个答案:

答案 0 :(得分:7)

是的,有。 List comprehensions非常适合这个:

[item for item in myList if item.flag]
[item for item in myList if not item.flag]

其中flag是您要检查的WhatEver字段的名称。

答案 1 :(得分:1)

使用filter

filtered_list = filter(lambda item: item.flag, myList)