我想根据表 2 中出现在表 1 中的 ID 合并两个列表。
table1 = [(u'Id1', u'New'),(u'Id4', u'New')]
table2 = [(u'Id1', u'Proudct1', None, u'New', u'Id#343', u'Jim'),
(u'Id2', u'Proudct2', None, u'New', u'Id#3343', u'Jim')]
Combined = [item for item in table2 if item[0] in table1]
print Combined
结果:
[]
期望的结果:
[(u'Id1', u'Proudct1', None, u'New', u'Id#343', u'Jim')]
最佳答案
还好
table1 = [(u'Id1', u'New'),(u'Id4', u'New')]
table2 = [(u'Id1', u'Proudct1', None, u'New', u'Id#343', u'Jim'),(u'Id2', u'Proudct2', None, u'New', u'Id#3343', u'Jim')]
#convert to dictionaries (a more appropriate data structure,imho at least)
dict1=dict(table1)
dict2=dict((item[0],item[1:]) for item in table2)
#get the intersection
final = dict((key,dict2[key]+(dict1[key],)) for key in set(dict1).intersection(dict2))
print final
如果你的表很大,你可能会看到显着的速度提升
关于python - 结合两个列表 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27429021/