Python|按布尔列表过滤列表
有时,在使用Python列表时,我们可能会遇到必须过滤列表的问题。这有时会带来变化。一种这样的变体可以通过使用布尔列表进行过滤。让我们讨论一种可以完成此任务的方法。
方法:使用itertools.compress()
执行此特定任务的最优雅和最直接的方法是使用 compress() 的内置功能从列表中过滤掉存在于相对于其他列表索引的真值位置的所有元素。
# 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))
输出 :
The original list : [6, 4, 8, 9, 10]
The bool list is : [True, False, False, True, True]
List after filtering is : [6, 9, 10]