猿问

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

我正在使用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,将其他值合并


有什么建议??



三国纷争
浏览 195回答 2
2回答

长风秋雁

我想如果顺序无关紧要,您可以使用dict:from operator import itemgettergetter = 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。
随时随地看视频慕课网APP

相关分类

Python
我要回答