Какой из перечисленных модулей содержит функцию, которая фильтрует элементы одного списка по элементам другого?

Из вариантов подходит 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. Формулировка без указания маски неоднозначна.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее