2011-11-05 40 views
0
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: 

这些是我迄今为止唯一的两行代码。令我不安的是函数中的过滤器。我真的不知道过滤器应该做什么或如何使用它。需要了解Python中的函数

绝不会要求完整的代码。我只是想要过滤器应该做什么以及如何使用它的帮助。

+2

嗯 - 这真的很模糊...更多的上下文肯定会有必要帮助你。 – jedwards

+0

'process_filter_description()'在哪里?或者你正在写什么? – yosukesabai

+1

这对我来说就像是功课。文档字符串可以作为一个问题从文本书中取出。 –

回答

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)。

实际上,您通常使用lambda函数而不是定义一次性顶级函数,但您不应该担心,因为这很好。

但无论如何,你应该可以做类似的事情来实现你的目标。

0

那么它说,在该行:

返回一个包含从通过描述筛选器列表仅适用于图像项(一个STR)一个新的列表
...
匹配完成在不区分大小写的方式

所以..即时猜测过滤器只是一个字符串,你有关联的任何类型的文本 图像 ?某种可以与过滤器字符串匹配的描述或名称?