如何仅从列表中返回过滤器传递的图像

时间:2011-11-02 00:12:37

标签: python

假设我们有一个函数processed_filter_description(a, b, c),它有3个参数。

  • a =用户输入说明
  • b =潜在图片的文件扩展名(jpg,gif),
  • c =所有图片的列表(['image1.jpg', 'image1.gif', 'image2.jpg', 'image2.gif', 'image3.jpg', 'image3.gif']

该函数检查描述变量(a),并检查匹配的扩展名或图像类型变量(b),并从图像列表(c)返回匹配条件。

1 个答案:

答案 0 :(得分:1)

如果我理解你的规格正确,它看起来像这样:

>>> def processed_filter_description(desc, exts, all_images):
        result = []
        for image in all_images:
            base, ext = os.path.splitext(image)
            if base.startswith(desc) and ext in exts:
                result.append(image)
        return result

>>> filenames = ['rainbow1.gif', 'sunset1.jpg', 'rainbow1.idx', 
                 'sunset2.jpg', 'rainbow2.jpg', 'sunset3.gif']
>>> processed_filter_description('rainbow', ('.jpg', '.gif'), filenames)
['rainbow1.gif', 'rainbow2.jpg']