Из вариантов подходит itertools: функция compress(data, selectors) выбирает элементы data по истинности соответствующих элементов selectors. Это фильтрация по маске, а не пересечение списков.
Какой из перечисленных модулей содержит функцию, которая фильтрует элементы одного списка по элементам другого?
Из вариантов подходит itertools: функция compress(data, selectors) выбирает элементы data по истинности соответствующих элементов selectors. Это фильтрация по маске, а не пересечение списков.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Какой из перечисленных модулей содержит функцию, которая фильтрует элементы одного списка по элементам другого?
- collections
- re
- itertools
- datetime, json, csv
- functools
Ответ
Из вариантов подходит itertools: функция compress(data, selectors) выбирает элементы data по истинности соответствующих элементов selectors. Это фильтрация по маске, а не пересечение списков.
from itertools import compress
list(compress(['a', 'b', 'c'], [1, 0, 1])) # ['a', 'c']
Итерация останавливается при исчерпании data или selectors. Если подразумевалось «оставить значения, встречающиеся во втором списке», это другая операция: обычно строят множество второго списка и используют comprehension. Формулировка без указания маски неоднозначна.