有两个列表:
l1 = [{id:'001',name:'john'},{id:'002',name:'jim'},{id:'003',name:'jack'},{id:'004',name:'jerry'}]
l2 = [{id:'005',name:'john'},{id:'006',name:'jim'}]
输出结果:
l3 = [{'001':'005'},{'002':'006'}]
请问如何编写?
这样?
l1 = [{'id':'001','name':'john'},{'id':'002','name':'jim'},{'id':'003','name':'jack'},{'id':'004','name':'jerry'}]
l2 = [{'id':'005','name':'john'},{'id':'006','name':'jim'}]
l3=[]
for item in l1:
l=[x for x in l2 if x['name']==item['name']]
if len(l)>0:
newitem={}
newitem[item['id']]=l[0]['id']
l3.append(newitem)
print(l3)
使用列表解析式简洁写法:
l1 = [{'id':'001','name':'john'},{'id':'002','name':'jim'},{'id':'003','name':'jack'},{'id':'004','name':'jerry'}]
l2 = [{'id':'005','name':'john'},{'id':'006','name':'jim'}]
res=[{k1['id']:k2['id']} for k1 in l1 for k2 in l2 if k2['name']==k1['name']]
print(res)
#输出:
[{'001': '005'}, {'002': '006'}]
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!