Как я уже сказал в своем комментарии, это действительно расплывчато.Но я попытаюсь немного объяснить концепцию фильтра в python, в частности функцию filter()
.
Прототип фильтра: iterable <- filter(function, iterable)
.
iterable
- это то, что можно повторить.Вы можете найти этот термин в документации для более точного объяснения, но для вашего вопроса, просто знайте, что список является итеративным.
function
- это функция, которая принимает один элемент iterable
Вы указываете (в данном случае, элемент списка) и возвращаете логическое значение, указывающее, должен ли элемент существовать в возвращаемой итерируемой.Если функция возвращает True, элемент появится в возвращенном списке, если False, то не будет.
Вот краткий пример, показывающий, как можно использовать функцию filter()
для фильтрации всех четных чисел (что я должен отметить, это то же самое, что «фильтрация» всех нечетных чисел)
def is_odd(i): return i%2
l = [1,2,3,4,5] # This is a list
fl = filter(is_odd, l)
print fl # This will display [1,3,5]
Вы должны убедить себя, что is_odd
работает в первую очередь.Он вернет 1 (= True) для нечетных чисел и 0 (= False) для четных чисел.
На практике вы обычно используете лямбда-функцию вместо определения одноразовой функции верхнего уровня, но выне стоит беспокоиться об этом, так как это просто прекрасно.
Но в любом случае вы должны быть в состоянии сделать что-то подобное для достижения своей цели.