为了账号安全,请及时绑定邮箱和手机立即绑定

python在列表列表中查找重复列表

python在列表列表中查找重复列表

三国纷争 2021-03-23 17:13:32
我正在使用python 2.7,并且尝试基于两个值在列表列表中查找重复的列表。例如list= [[a,x,y,2], [b,xx,yy,2], [c,xxx,yyy,3],[a,yx,yx,2]]outcome [[a,xyx,yyx,2], [b,xx,yy,2], [c,xxx,yyy,3]]因此,基于值a和2,将其他值合并有什么建议??
查看完整描述

2 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

我想如果顺序无关紧要,您可以使用dict:


from operator import itemgetter

getter = itemgetter(0,-1)


def merge(lst1,lst2):

    return [lst1[0],lst1[1]+lst2[1],lst1[2]+lst2[2],lst1[3]]



d = {}

for sublist in lst:

    t = getter(sublist)

    if t not in d:

       d[t] = sublist

    else:

       d[t] = merge(sublist,d[t])


print d.values()

如果顺序很重要,则可以改用a collections.OrderedDict。


查看完整回答
反对 回复 2021-03-30
  • 2 回答
  • 0 关注
  • 194 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号