Re: List Operations

*To*: mathgroup at smc.vnet.net*Subject*: [mg65702] Re: List Operations*From*: "Ray Koopman" <koopman at sfu.ca>*Date*: Sun, 16 Apr 2006 01:45:10 -0400 (EDT)*References*: <e1nn6s$lmm$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

LectorZ wrote: > Hi guys, > > My question: > > mylist={{1,a, b},{1,a, b},{1,a, > b},{2,b,z},{2,b,z},{2,b,z},{2,b,z},....,{n,x,y},{n,x,y},{n,x,y},...{n,x,y}} > > The sublists are of different length. > > I need to calculate the product between the 2nd and 3rd element of > every sublist (e.g. a*b) and then add them up according to the 1st > element: sum of all products where the 1st element is 1, 2, ...n. > > The result should be a list like that: > {{1,a*b+a*b+a*b},{2,b*z+b*z+b*z+b*z}, ...,{n, x*y+x*y+x*y+...+x*y}} > > Thank you for your help. > > LZ In[1]:= mylist= {{1,a1,b1},{1,a2,b2},{1,a3,b3}, {2,b1,z1},{2,b2,z2},{2,b3,z3},{2,b4,z4}, {3,x1,y1},{3,x2,y2}}; In[2]:= {#[[1,1]],#[[All,2]].#[[All,3]]}& /@ Split[Sort@mylist,#1[[1]]==#2[[1]]&] Out[2]= {{1,a1*b1+a2*b2+a3*b3}, {2,b1*z1+b2*z2+b3*z3+b4*z4}, {3,x1*y1+x2*y2}}