Нужно понять функцию в Python

#python #function

#python #функция

Вопрос:

 def process_filter_description(filter, images, ial):
    '''Return a new list containing only items from list images that pass 
    the description filter (a str). ial is the related image association list.
    Matching is done in a case insensitive manner.
    '''

        images = []
        for items in ial:
  

Это единственные две строки кода, которые у меня есть на данный момент. Что меня беспокоит, так это фильтр в функции. Я действительно не знаю, что должен делать фильтр или как его использовать.

Я ни в коем случае не прошу полный код. Я просто хочу помочь с тем, что должен делать фильтр, и как я могу его использовать.

Комментарии:

1. Хм — это действительно расплывчато … вам определенно понадобится больше контекста, чтобы помочь.

2. где process_filter_description() ? или это то, что вы собираетесь написать?

3. Для меня это похоже на домашнее задание. Строка документа может быть взята прямо из учебника в качестве вопроса.

4. Еще одна вещь, я не уверен, что вы хотите принять список в качестве аргумента, а затем сразу установить его в пустой список (как вы делаете с images .

Ответ №1:

Как я уже сказал в своем комментарии, это действительно расплывчато. Но я попытаюсь немного объяснить концепцию фильтра в 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) для четных чисел.

На практике вы обычно используете лямбда-функцию вместо определения одноразовой функции верхнего уровня, но вам не стоит беспокоиться об этом, так как это просто отлично.

Но в любом случае, вы должны быть в состоянии сделать что-то подобное для достижения своей цели.

Ответ №2:

Ну, это говорит в строке описания:

Возвращает новый список, содержащий только элементы из списка изображений, которые проходят фильтр описания (a str)

Сопоставление выполняется без учета регистра

Итак .. я предполагаю, что фильтр — это просто строка, у вас есть какой-либо текст, связанный с изображениями? какое-то описание или имя, которое можно сопоставить со строкой фильтра?