需要了解python中的函数

时间:2011-11-05 22:52:11

标签: python function

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:

这是我到目前为止唯一的两行代码。困扰我的是功能中的过滤器。我真的不知道过滤器应该做什么或如何使用它。

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

2 个答案:

答案 0 :(得分: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函数而不是定义一次性使用的顶级函数,但你不应该担心,因为这很好。

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

答案 1 :(得分:0)

它在描述行中说:

  

返回一个新列表,其中仅包含通过描述过滤器的列表图像中的项目( a str
  ...
  匹配以不区分大小写的方式完成

所以..我猜这个过滤器只是一个字符串,你有没有与图像相关的文字?某种可以与过滤字符串匹配的描述或名称?