Python |通过布尔列表过滤列表
原文:https://www . geesforgeks . org/python-filter-list-by-boolean-list/
有时候,在使用 Python 列表时,我们会遇到一个问题,那就是我们必须过滤一个列表。这有时会有变化。一种这样的变化可以是通过使用布尔列表进行过滤。让我们讨论一下完成这项任务的方法。
方法:使用itertools.compress()
执行此特定任务的最优雅和简单的方法是使用 compress()的内置功能从列表中过滤出所有元素,这些元素相对于其他列表的索引位于 true 位置。
# Python3 code to demonstrate working of
# Filter list by Boolean list
# Using itertools.compress
from itertools import compress
# initializing list
test_list = [6, 4, 8, 9, 10]
# printing list
print("The original list : " + str(test_list))
# initializing Boolean list
bool_list = [True, False, False, True, True]
# printing boolean list
print("The bool list is : " + str(bool_list))
# Filter list by Boolean list
# Using itertools.compress
res = list(compress(test_list, bool_list))
# Printing result
print("List after filtering is : " + str(res))
Output :
The original list : [6, 4, 8, 9, 10]
The bool list is : [True, False, False, True, True]
List after filtering is : [6, 9, 10]
版权属于:月萌API www.moonapi.com,转载请注明出处