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()
from collections import OrderedDict
lis = [['a','x','y',2], ['b','xx','yy',2], ['c','xxx','yyy',3],['a','yx','yx',2]]
dic = OrderedDict()
for x in lis:
key = (x[0],x[-1])
if key not in dic:
dic[key] = x[1:-1]
else:
val = dic[key]
dic[key] = [a+b for a,b in zip(val,x[1:-1])]
print [[k[0]] + v + [k[1]] for k,v in dic.items()]
如果顺序无关紧要,我想你可以用口述:
如果顺序很重要,您可以使用
collections.OrderedDict
。在输出:
^{pr2}$相关问题 更多 >
编程相关推荐