我有一个作业,其中一部分要求定义一个process_filter_description。基本上我有一个我要过滤的图像列表:
images = ["1111.jpg", "2222.jpg", "circle.JPG", "square.jpg", "triangle.JPG"]
现在我有了一个可以用来过滤图像的关联列表:
assc_list = [ ["numbers", ["1111.jpg", "2222.jpg"]] , ["shapes", ["circle.JPG", "square.jpg", "triangle.JPG"]] ]
我可以使用过滤器描述来选择我想要应用过滤器的关联列表,关键字由冒号包围):
f = ':numbers:'
我不确定如何启动它。用言语我至少可以想到:
现在我只是想让我的代码只打印数字关联列表中的术语,但它会打印出所有这些术语。
def process_filter_description(f, images, ia):
return_list = []
f = f[1:-1]
counter = 0
if f == ia[counter][0]:
#print f + ' is equal to ' + ia[counter][0]
for key in ial:
for item in key[1]:
#print item
#return_list.append(item)
return return_list
答案 0 :(得分:2)
而不是“关联列表”,如何使用字典?
filter_assoc = {'numbers': ['1111.jpg', '2222.jpg'] ,
'shapes': ['circle.JPG', 'square.jpg', 'triangle.JPG']}
现在,只需查看每组中的图像:
>>> filter_assoc['numbers']
['1111.jpg', '2222.jpg']
>>>
>>> filter_assoc['shapes']
['circle.JPG', 'square.jpg', 'triangle.JPG']
您的处理功能将变得非常简单:
def process_filter_description(filter, association):
return association[filter[1:-1]]
我会在这里大声思考,所以这就是我用来执行字典任务的功能:
def process_filter_description(index, images, association):
return_list = []
index = index[1:-1]
for top_level in association:
if top_level[0] == index:
for item in top_level[1]:
return_list.append(item)
break
return return_list