Python Glossary English

все Python 3itertoolsфункция

itertools.compress

itertools

Отбирает элементы data, где соответствующий элемент selectors истинен.

Синтаксис

itertools.compress(data, selectors)

Останавливается на более коротком из двух аргументов, лишний хвост игнорируется. Удобен, когда булева маска уже посчитана заранее (например, другим фильтром) и её хочется переиспользовать — читается чище, чем comprehension с zip; selectors — любые истинные или ложные значения, не обязательно 0 и 1.

Примеры

import itertools
print(list(itertools.compress(['a', 'b', 'c', 'd'], [1, 0, 1, 0])))   # → ['a', 'c']
nums = [5, 12, 7, 20]
print(list(itertools.compress(nums, [n > 10 for n in nums])))   # → [12, 20]
print(list(itertools.compress([1, 2, 3], [1, 1])))   # → [1, 2]
print(list(itertools.compress(['a', 'b', 'c'], ['', 'x', None])))   # → ['b']

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности