2014-04-13 25 views
0

我使用Python 3.4和我有这样的代码:短代码:地图,过滤器,拉姆达

result = [] 
    for i in r['resp']: 
     for id in self.all_dicts: 
      if i == id['id']: 
       result.append(id) 

它很长,所以我想简短:

result = list(map(filter(lambda x: x == i,self.all_dicts),r['resp'])) 

但我有一个错误:

TypeError: 'filter' object is not callable 

如何解决这个问题?由于

+0

是什么的r [RESP]'包含?我们可以把它转换成一套吗? –

+0

result = [id for i in [['resp'] for id in self.all_dicts if if == id ['id']] – tim

回答

3

我想你想:

result = [id for id in self.dicts if id['id'] in r['resp']]