2009-12-24 129 views
0

我有两个表是这样的:映射两个列表

list1 = [{'id':1, 'name':'foo', 'age':20}, {'id':2, 'name':'foo', 'age':20}] 

list2 = [{'id':2, 'created':'2004-12-23'}, {'id':12, 'created':'2004-12-23'}, 
     {'id':1, 'created':'2004-12-23'}] 

list1 = [{'id':1, 'name':'foo', 'age':20, 'match':True}, 
     {'id':2, 'name':'foo', 'age':20, 'match':True}] 

我想匹配添加到相应的列表,如果列表1和列表2相匹配的ID。我将如何有效地做到这一点?

回答

5
set2 = set(x['id'] for x in list2) 
for entry in list1: 
    if entry['id'] in set2: 
    entry['match'] = True 

OR

set2 = set(x['id'] for x in list2) 
for entry in list1: 
    entry['match'] = entry['id'] in set2