Python:根据项的特定值(如布尔值)生成子列表

2 投票
2 回答
7400 浏览
提问于 2025-04-16 21:54

我有一堆相似的对象,其中一些对象有一个特定的值,这里更具体来说是一个布尔标志:

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

在Python中,有没有简单的方法可以获取一个子列表,里面的项目值设置为特定的值,这里是指要么是 True 要么是 False

2 个回答

1

使用 filter 函数:

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

是的,有这种方法。列表推导式非常适合用来做这个:

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

这里的 flag 是你想要检查的 WhatEver 的字段名。

撰写回答