您好我有两个需要匹配的数据集,它们的对应值必须相同。
list1 = [['Bob',[1,2,3,4]],['henry',[65,23,41,23]],['jerry',[5,8,10,12]]]
list2 = [['Bob',[1,2,4,3]],['jill',[36,21,34,53]],['jerry',[9,8,4,12]]]
但是有一点需要注意,如果在比较list1和list2时不存在与名称关联的值,则需要检查它,然后将其添加到列表中,反之亦然。
例如,'jerry'同时存在于list1和list2中,但是[5,8,10,12]不等于[9,8,4,12],附加到list1和list2的所需更新将是:[9,4,5,8,10,12]所以这两个列表都有与现在匹配的'jerry'相关联的值。在与我合作的情况下,与名称关联的值的顺序无关紧要。
这是一个现实世界的问题,我已经翻译成一个相当简单的数据集。我感谢任何提示或建议!
预期输出:
list1 = [['Bob',[1,2,3,4]],['henry',[65,23,41,23]],['jerry',[4,5,8,9,10,12]]]
list2 = [['Bob',[1,2,3,4]],['jill',[36,21,34,53]],['jerry',[4,5,8,9,10,12]]]]
答案 0 :(得分:1)
您可以使用set()
list3 = {k:list(set([list1[k]+list2[k])) for k in list1}
list3 = [[k,list(set([list1[k]+list2[k]))] for k in list1]
那更好,哦等不,它不是......
list3 = [[list1[n][0],list(set([list1[n][1]+list2[n][1]]))] for n,k in enumerate(list1)]