我正在使用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條經(jīng)驗 獲得超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。
添加回答
舉報
0/150
提交
取消