itertools.compress()
函数适用于需要一个关联序列来过滤另一个序列的情况。它以一个iterable
对象和一个相对应的Boolean
选择器序列作为输入参数,输出iterable
对象中对应选择器为True
的元素。
from itertools import compress
addresses = [
"5412 N CLARK",
"5148 N CLARK",
"5800 E 58TH",
"2122 N CLARK",
"5645 N RAVENSWOOD",
"1060 W ADDISON",
"4801 N BROADWAY",
"1039 W GRANVILLE",
]
counts = [0, 3, 10, 4, 1, 7, 6, 1]
# 输出addresses对应count大于5的所有地址
more5 = [n > 5 for n in counts]
n_addresses = list(compress(addresses, more5))
print(n_addresses) # ["5800 E 58TH", "1060 W ADDISON", "4801 N BROADWAY"]